今天遇到了一個比較坑的情況
有一個對象,假設為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());
最終解決