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); 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值