JSONObject遍历并替换部分json值

匿名 (未验证) 提交于 2019-12-03 00:18:01

如何修改JSONObject 的值,如何替换json中的部分内容,比如检查报告我们再数据库存的是json格式的字符串varchar,然后前端传来确认更新报告的json,后台接口需要将前端传来的json里面的内容更新到后台数据库(当然,前端传来的不一定是完整的字符串,可能是一个,两个,总之只是部分不是全部)。这个时候就需要使用这个方案了。

    @PutMapping("/result/{checkNum}")     public ApiReturnObject update(@PathVariable String checkNum,String dataStr) {         //从数据库查出duix         Result result= resultReposity.findByCheckNum(checkNum);         //接收的参数         JSONObject jsonObj=JSON.parseObject(dataStr);         JSONObject originObj=JSON.parseObject(result.getCheckresult());         //单个替换         //originObj.put("AGE", jsonObj.get("AGE"));         //遍历替换json里面的值         for (String key:jsonObj.keySet()) {             originObj.put(key, jsonObj.get(key));         }         //转化为jsonString         result.setCheckresult(originObj.toJSONString());         //更新状态         result.setStatus("1");         //保存         resultReposity.save(result);     }
  • put可以强制更新json里面的值
JSONObject json = JSON.parseObject("{val: 123}"); System.out.println("======before====="); System.out.println("size: " + json.size()); System.out.println("val:  " + json.get("val")); //直接put相同的key json.put("val", 234); System.out.println("======after======"); System.out.println("size: " + json.size()); System.out.println("val:  " + json.get("val")); 结果  ======before===== size: 1 val:  123 ======after====== size: 1 val:  234
  • JSONObject.keySet()可以遍历json所有的key值
for (String key:jsonObj.keySet()) {     originObj.put(key, jsonObj.get(key)); }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!