Map与Json之间的转换(fastjson)

最近在写接口,死磕json,这在以前是不怎么接触的,但是网上的文章对我来说不是很全面,花了一周的时间查资料,使用,总结了一些小经验,所以记录下来,给大家作参考,有什么不足的地方也欢迎大家来补充说明.

之前使用的是net.sf.json.包下的JsonObject,但是有很多功能是没有的,所以我使用的是阿里的fastjson

使用之前记得首先在pom.xml文件中导入fastjson的依赖(前提是maven项目)

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.30</version>
 </dependency>

      这样重启项目就可以直接使用了

1.Map,List,.对象.....转json类型的字符串(注意:这个方法是转化为json对象,不是json数组)

//JSONObject的toJSONString方法可以把任何类型转化为json类型的字符串

String jSONObject=JSONObject.toJSONString(object)

//就是这么方便又强大!

2.取值

取值其实很简单,但是有时候很难,你根本不知道对方当初怎么存的值.

   2.1  map集合里存对象,对象里存list集合      

//首先将String转为jsonObject才好操作
JSONObject fromObject = JSONObject.parseObject(jsonString);

//从json中分层取出里面key为list的值
JSONObject object = fromObject.getJSONObject("list");

//这一步就是取出list集合值的步骤
list = (List<ClaimReportDataCheckResponse>) object.get("list");

//如果你想取出list集合里的值可以进行便利,很简单,就不写了

   

  2.2  JSONObject转对象       

//这个方法的第一个参数是JSONObject对象 ,第二个参数是实体类的.class类

JSONObject.toJavaObject(json, clazz)

//这个是代码例子

ClaimReportData c =new ClaimReportData ();   //实体类

//这是把String类型json转为jsonobject

JSONObject responsePic = JSONObject.parseObject(jsonStringPic);  

JSONObject jsonObject = responsePic.getJSONObject("ClaimPicList");//前面获取到的JSONObject对象 

c= JSONObject.toJavaObject(jsonObject , ClaimReportData .class);



//当然还有很多其他的方法,大家可以多试验几种

 

3.最重要的一个作用,时间格式转化

     Date时间转jaon格式会发生格式变化,遇到你们就会纠结了,这里提前注意一下,也是我为什么要用fastjson

     处理格式错乱的方法:

//在你实体类每个date属性上都添加注解@jsonfield  时间格式根据自己需要设置

@JSONField(format="yyyy-MM-dd HH:mm:ss")
	private Date updateTime;




//很简单,但是很高效, 我找了两天才找到的方法.

 

其实到这儿就差不多够用了 ,fastjson基本满足你所有的需要,

如果有我没涉及到的,大家可以直接自己根据JsonObject的提示看它的返回值和参数来满足自己的需求.

后期有其他发现我还会补充的,也希望大家多多留言,提出一些生僻,但实用的方法.

代码的世界,因你我更加精彩!

码字不易,共建和谐社会,谢谢您花时间看我的博客.

 

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值