fastjson转换对象
在使用fastjson解析json字符串的时候,之前有一个疑惑。有时候接口描述不清晰,json中的一个子项的值是一个json对象还是一个json字符串,发过来的字符串是不相同的,那么我们使用fastjson解析成对象的时候有没有影响。
比如下面一个对象类。
@Data
public class People {
private String name;
private String items;
}
如果json分别为如下面2种:
{"name":"李华", "items":"{\"subject\":\"math\",\"master\":\"Li\"}"}
{"name":"李华", "items":{"subject":"math","master":"Li"}}
把它们转换成People对象,第一个应当没问题,那么第二个转换的结果相同吗
String str1 = "{\"name\":\"李华\", \"items\":\"{\\\\"subject\\\\":\\\\"math\\\\",\\\\"master\\\\":\\\\"Li\\\\"}\"}";
String str2 = "{\"name\":\"李华\", \"items\":{\"subject\":\"math\",\"master\":\"Li\"}}";
People p1 = JSONObject.parseObject(str1, People.class);
People p2 = JSONObject.parseObject(str1, People.class);
System.out.println("是否相同:" + JSONObject.parseObject(p1.getItems()).equals(JSONObject.parseObject(p2.getItems())));
运行结果: 是否相同:true
所以,我们在使用fastjson转换对象的时候,可以忽略json字符串和json对象的区别

浙公网安备 33010602011771号