1. @JsonProperty和@SerializedName注解

  • 使用场景
将一个json格式的字符串转换成某个java对象,或者将一个java对象转换成json格式的字符串时,如果json字符串中的字段跟java对象中定义的属性名不一致,需要在java对象的属性上加上@JsonProperty或@SerializedName进行转换。
  • 示例
1 @JsonProperty("jsonName")
2 private String name;
或者
1 @SerializedName("jsonName")
2 private String name;
  • 区别
JsonProperty注解使用的是 Jackson包,SerializedName注解使用的是 Gson包,使用时避免包冲突。附上两个包的官方网站: http://www.javacreed.com/simple-gson-example/ https://www.baeldung.com/jackson-annotations

2. Json串转换成JSONObject

  • 使用fastjson

原始字符串:
1 {"header":{"code":0,"message":"SUCCESS"},"data":{"id":48,"metric.name":"test_hk_1","metric.type":"kafka_commit","partition.lag":false,"group.id":""}}
转换过程:
1 import com.alibaba.fastjson.JSONObject;
2 JSONObject jsonObject = JSONObject.parseObject(contentAsString).getJSONObject("data");

3. Json字符串格式

json字符串中null类型的value如下所示:
1 "{\"header\":{\"code\":34,\"message\":\"job id doesn't exist.\"},\"data\":null}"

boolean,int等类型的value如下所示:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1 "{\"header\":{\"code\":0,\"message\":\"SUCCESS\"},\"data\":{\"id\":48,\"metric.type\":\"kafka_commit\",\"consumer.zk.host\":\"\",\"consumer.zk.port\":2181,\"consumer.zk.root\":\"/brokers\",\"enabled\":true,\"group.id\":\"\"}}"

 

 


 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄