json工具的使用

Jackson的使用

对象和json之间的转换:

对象转JSON

ObjectMapper objectMapping = new ObjectMapper();

objectMapping.writeValueAsString(obj)

JSON转对象

ObjectMapper objectMapping = new ObjectMapper();

objectMapping.readValue(str, ojb.class)

说明

  • json字符串中的key应该与java对象的属性名相同
  • java对象中属性如果为private,则需要显示生成getter/setter方法;如果属性为public,则可以不必写getter/setter方法
  • java对象如果有自定义的构造方法,json字符串转换为java对象时会出错
  • 如果json字符串中的属性个数小于java对象中的属性个数,可以顺利转换,java中多的那个属性为null
  • 如果json字符串中出现java对象中没有的属性,则在将json转换为java对象时会报错:Unrecognized field, not marked as ignorable
    解决方法:

    在目标对象的类级别上添加注解:@JsonIgnoreProperties(ignoreUnknown = true)

  • java对象名和json中名不一致时解决方法:

    在目标对象的字段级别上添加注解:@JsonProperty(value = "name")

    其他用法看: https://www.cnblogs.com/guanbin-529/p/11488869.html                      https://www.cnblogs.com/justn0w/p/11181274.html                     

FastJson的使用(尽量使用较高的版本,低版本bug较多)

1,Fastjson中的经常调用的方法:

 public static final Object parse(String text);   // 把JSON文本parse为JSONObject或者JSONArray 

 public static final JSONObject parseObject(String text);   // 把JSON文本parse成JSONObject 

 public static final T parseObject(String text, Class clazz);   // 把JSON文本parse为JavaBean 

 public static final JSONArray parseArray(String text);   // 把JSON文本parse成JSONArray 

 public static final List parseArray(String text, Class clazz);   //把JSON文本parse成JavaBean集合 

 public static final String toJSONString(Object object);   // 将JavaBean序列化为JSON文本 

 public static final String toJSONString(Object object, boolean prettyFormat);   // 将JavaBean序列化为带格式的JSON文本 

 public static final Object toJSON(Object javaObject);   //将JavaBean转换为JSONObject或者JSONArray。

2,Fastjson字符串转List<Map<String,Object>>(), 或者List<String>()的用法;

List<Map<String, Object>> list = JSONObject.parseObject(respJson, new TypeReference<List<Map<String, Object>>>() {});

3,Fastjson的SerializerFeature序列化属性

QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null

例如:JSON.toJSONString(resultMap, SerializerFeature.WriteMapNullValue);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值