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包,使用时避免包冲突。附上两个包的官方网站:
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");