当前位置: 移动技术网 > IT编程>开发语言>Java > springboot中JSONObject遍历并替换部分json值

springboot中JSONObject遍历并替换部分json值

2020年11月13日  | 移动技术网IT编程  | 我要评论
使用场景如何修改jsonobject 的值,如何替换json中的部分内容,比如检查报告我们再数据库存的是json格式的字符串varchar,然后前端传来确认更新报告的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内容请搜索移动技术网以前的文章或继续浏览下面的相关文章希望大家以后多多支持移动技术网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网