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对象的区别
posted @ 2021-11-17 17:00  昵称要矢  阅读(305)  评论(0)    收藏  举报