json字符串中主要对应的价值值如何进行修改?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
字符串转json、下面这种方式会把原有的字符串顺序打乱,所以不采用
JSONObject JSONObject=JSON.parseObject(你的json);
引用>要先转为LinkedHashMap,再转json
LinkedHashMap<字符串,Object>json=JSON.parseObject(你的json、LinkedHashMap.class Feature.OrderedField); JSONObject JSONObject=new JSONObject(真正的); jsonObject.putAll (json);//更新频度 jsonObject.put (“key",“P");//替换钥匙对应的值 字符串new_text=jsonObject.toJSONString ();此时new_text就是已经更新过后的新json字符串
<强> java中修改嵌套json字符串中的价值,比较精准的方法强>
我就废话不多说了,大家还是直接看代码吧~
{公共类测试/* * * @param args命令行参数 */公共静态void main (String [] args)抛出JSONException {//TODO代码的应用程序逻辑。//已有Json格式字符串{“id":“10001”,“name":“肉类“,“menus": [{“name":“牛肉“,“price":“30.00”;}, {“name":“羊肉“,“price":“20.00“}]}//需求是将牛肉的价格改为50.00 json字符串=皗\“\“id: \“10001 \“, \“\”名称;:\“肉类\”,\“菜单\“:[{\“\“名称:\“牛肉\”,\“\“价格:\“30.00 \“;},{\“\“名称:\“羊肉\”,\“\“价格:\“20.00 \“}]}“; System.out.println (“1。“+ json); JSONObject kindJson=new JSONObject (json);//将字符串转为JSONObject 字符串menuJson=kindJson.getString (“menus");//获取到菜单 JSONArray菜单JSONArray=new (menuJson);//再将menuJson转JSONArray为 System.out.println (“2。“+”菜单); JSONObject beefJson=menus.getJSONObject(0);//根据下标0(类似数组)获取牛肉的json对象 beefJson.put (“price",“50.00“);//直接提交价格的关键,如果该键存在则替换值 菜单。把(0,beefJson);//覆盖掉原来的值 System.out.println (“3。“+ beefJson); System.out.println (“; 4。“+”菜单);//替换完后打印查看 kindJson.put (“menus"、菜单);//再将菜单覆盖 json=kindJson.toString();//赋值 System.out.println (“5。“+ json);//替换完成 } }执行结果:
可见最后json字符串中的值被修改了,但是字段的顺序却发生了变化,因为JsonObject是用HashMap来存储的,
并不是按顺序进行存储,如果有这个需求的话可以自定义JsonObject,用有序的LinkedHashMap代替HashMap。
这里用的是将json字符串转换为json的对象,
然后逐步将需要修改的对象取出来,利用把将原来的值覆盖完后再逐步提交回去。
看完上述内容,你们掌握json字符串中主要对应的价值值如何进行修改的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
json字符串中主要对应的价值值如何进行修改