Java中json的几种用法

java中有几种实现json的相关包

1、net.sf.json.JSONObject http://json-lib.sourceforge.net/apidocs/jdk15/net/sf/json/JSONObject.html 

较早版本,jdk5中自带的,不推荐

2、org.json.JSONObject https://stleary.github.io/JSON-java/org/json/JSONObject.html

jdk中自带的json操作jar包,比较简单,不支持POJO类(对象实体)与json的互转。

str1样式为:{"A":"11","B":"22","C":"3"}

单独的字符创转化为json时可用:JSONObject myJsonObject1 =  new  JSONObject(str1);

myJsonObject1.get(“A”)=11,如果值为数组时,使用myJsonObject1.getJSONArray(“DD”)来获得数组信息。

str2样式为:{"春天":"花","秋天":"叶","冬天":"树干"},{"春天":"18","秋天":"6","冬天":"-2"}

数组类字符创转化为json时可用:JSONArray myJsonArray2 =  new  JSONArray(str2);

3、com.google.code.gson https://github.com/google/gson

谷歌出品的对于json操作的jar包,主要提供两个方法fromJson()和toJson()用于解析和生成json的方法。

使用举例:

POJO类:

public class User{

     public Int id;

     public String name;

     public  String description;

}

Gson gson = new Gson();

生成JSON字符串:

User user = new User(1,"wangli","今天天气不错");

String jsonStr = gson.toJson(user);

jsonStr输出为{"id":1,"name":"wangli","description":"今天天气不错"}

解析JSON字符串:

String jsonStr = {"id":2,"name":"fengjie","description":"我不喜欢下雨天"}

User user = gson.fromJson(jsonStr,User.class);

4、com.alibaba.fastjson.JSONObject https://github.com/alibaba/fastjson

Alibaba提供的开源json操作包,特点是比较快

使用举例:

序列化 String jsonString = JSON.toJSONString(user);

反序列化 User user = JSON.parseObject(jsonString,User.class);

还有List的应用,

序列化 List<User> users = new ArrayList<User>(); String jsonString = JSON.toJSONString(users);

反序列化 List< User > persons2 = JSON.parseArray(jsonString, User.class);

5、org.codehaus.jackson(v 1.0) , com.fasterxml.jackson(v 2.0 )https://github.com/FasterXML/jackson

使用较广泛的,用来序列化和反序列化 json 的 Java 的开源框架,是Spring MVC默认的json解析器。

序列化 ObjectMapper mapper = new ObjectMapper(); mapper.writeValueAsString(user); 

反序列化 User user = mapper.readValue(jsonStr,User.class); 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页