如何修改json字符串中某个key对应的value值
时间:2021-05-29 07:43:20|栏目:JAVA代码|点击: 次
字符串转json ,下面这种方式会把原有的字符串顺序打乱,所以不采用
JSONObject jsonObject = JSON.parseObject(你的JSON);
要先转为LinkedHashMap,再转json
LinkedHashMap<String, Object> json = JSON.parseObject(你的JSON,LinkedHashMap.class,Feature.OrderedField);
JSONObject jsonObject=new JSONObject(true);
jsonObject.putAll(json);
//更新频度
jsonObject.put("key", "P");//替换key对应的值
String new_text = jsonObject.toJSONString();
此时new_text就是已经更新过后的新json字符串
补充知识:java中修改嵌套json字符串中的value,比较精准的方法
我就废话不多说了,大家还是直接看代码吧~
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws JSONException{
// TODO code application logic here.
//已有Json格式字符串{"id":"10001","name":"肉类","menus":[{"name":"牛肉","price":"30.00"},{"name":"羊肉","price":"20.00"}]}
//需求是将牛肉的price改为50.00
String json="{\"id\":\"10001\",\"name\":\"肉类\",\"menus\":[{\"name\":\"牛肉\",\"price\":\"30.00\"},{\"name\":\"羊肉\",\"price\":\"20.00\"}]}";
System.out.println("1. "+json);
JSONObject kindJson=new JSONObject(json);//将string转为jsonobject
String menuJson=kindJson.getString("menus");//获取到menus
JSONArray menus=new JSONArray(menuJson);//再将menuJson转为jsonarray
System.out.println("2. "+menus);
JSONObject beefJson= menus.getJSONObject(0);//根据下标0(类似数组)获取牛肉的json对象
beefJson.put("price", "50.00");//直接提交price的key,如果该key存在则替换value
menus.put(0, beefJson);//覆盖掉原来的值
System.out.println("3. "+beefJson);
System.out.println("4. "+menus);//替换完后打印查看
kindJson.put("menus", menus);//再将menus覆盖
json=kindJson.toString();//赋值
System.out.println("5. "+json);//替换完成
}
}
执行结果:

可见最后json字符串中的值被修改了,但是字段的顺序却发生了变化,因为JsonObject是用HashMap来存储的,
并不是按顺序进行存储,如果有这个需求的话可以自定义JsonObject,用有序的LinkedHashMap代替HashMap。
这里用的是将json字符串转换为json的对象,
然后逐步将需要修改的对象取出来,利用put将原来的值覆盖完后再逐步提交回去。
上一篇:详解springboot设置cors跨域请求的两种方式
栏 目:JAVA代码
下一篇:解决java idea新建子目录时命名不是树形结构的问题
本文标题:如何修改json字符串中某个key对应的value值
本文地址:http://www.codeinn.net/misctech/130939.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




