温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

json字符串中key对应的value值如何进行修改

发布时间:2020-11-25 15:02:11 来源:亿速云 阅读:1058 作者:Leah 栏目:开发技术

json字符串中key对应的value值如何进行修改?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

字符串转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字符串中key对应的value值如何进行修改

可见最后json字符串中的值被修改了,但是字段的顺序却发生了变化,因为JsonObject是用HashMap来存储的,

并不是按顺序进行存储,如果有这个需求的话可以自定义JsonObject,用有序的LinkedHashMap代替HashMap。

这里用的是将json字符串转换为json的对象,

然后逐步将需要修改的对象取出来,利用put将原来的值覆盖完后再逐步提交回去。

看完上述内容,你们掌握json字符串中key对应的value值如何进行修改的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI