fastjson踩坑之put
Posted qtlq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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());
最终解决
以上是关于fastjson踩坑之put的主要内容,如果未能解决你的问题,请参考以下文章