1. 程式人生 > 程式設計 >springboot中JSONObject遍歷並替換部分json值

springboot中JSONObject遍歷並替換部分json值

使用場景

如何修改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);
 }

JSON操作講解

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));
}

到此這篇關於springboot中JSONObject遍歷並替換部分json值的文章就介紹到這了,更多相關JSONObject遍歷並替換json內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!