JSON.parseObject和JSON.toJSONString详细说明

1、概念:JSON.parseObject,是讲Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串,在前后台的传输过程中,Json字符串是相当常用到的,

例如:首先用maven引入fastjson(java有四种JSON解析方法,感兴趣的可以了解下)

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.58</version>
   <scope>compile</scope>
</dependency>

定义一个model类

public class Staff {
   private String name;
   private int age;
   private String sex;
   private Date birthday;

测试这两个方法,这里故意在Json字符串中多了一个telephone,少了一个Staff中的birthday,看输出的对象会有什么变化。

public static void main(String args[]) {
   //json字符串转化为对象
   String jsonString = "{name:'yxs',age:23,sex:'man',telephone:'12346'}";
   Staff staff = JSON.parseObject(jsonString, Staff.class);
   System.out.println(staff.toString());
   //对象转化为json字符串

   String string = JSON.toJSONString(staff);
   System.out.println(string);

}

输出的结果

Staff{name='yxs', age=23, sex='man', birthday=null}
{"age":23,"name":"yxs","sex":"man"}
总结:在JSON。parseObject的时候,回去填充名字相同的属性,对于Json字符串中没有,而model类中有的属性,会为null,对于model类中没有,而json字符串中有的属性,不做任何处理

至于JSON.toJSONString,看结果。

应用场景:比方说,用户登陆微信公众号的时候,调用微信官方的restful接口,得到该用户的所有信息的一个Json字符串,然后写一个类(将自己需要的信息封装成一个类)例如下面的代码:

String s = httpRequest.sendGet("https://api.weixin.qq.com/sns/oauth2/access_token","appid=" + appId + "&secret=" + appSecret + "&code=" + code + "&grant_type=authorization_code");
UserAuthorizationReturn userAuthorizationReturn = JSON.parseObject(s, UserAuthorizationReturn.class);

注意:如果需要对list进行json的转化,转成json字符串的方式没有区别,但是从json字符串转化list时,需要使用JSON.parseArray方法

String jsonStr = JSON.toJSONString(tableInfoVO.getFieldInfo());
List<FiledInfoVO> filedInfoVOList = JSON.parseArray(jsonStr,FiledInfoVO.class);

转载于:https://my.oschina.net/u/4034553/blog/3070839

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值