fastjson踩坑之put

今天遇到了一个比较坑的情况

有一个对象,假设为person,里面的home为一串json

这个时候需要获取到这个json对里面的特定字符串进行替换,例如要替换地址 "addr":"123"为"addr":"234"

第一想法便是:

  person.setHome((String)JSONOobject.parse(person.getHome).put("addr","234"));

这时候你会发现在后面解析这个json的时候解析不出来,会抛出异常,于是自己本地测了一下,发现数据结构本应该是

  "addr":"234"的时候,home的值却是"234",key完全找不到,至于具体是因为什么也没有搞清楚

我的解决办法是:

JSONObject jsonObject = new JSONObject(JSONObject.parseObject(person.getHome()));
for (String key : jsonObject.keySet()){
if (key.equals("addr") && jsonObject.get(key).equals("123")){
jsonObject.put("addr","234");
}
}
person.setHome(jsonObject.toString());
最终解决

posted on 2019-08-28 14:24  一只二傻子  阅读(2038)  评论(0编辑  收藏  举报

导航