欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何修改json字符串中某个key对应的value值

程序员文章站 2022-07-03 09:27:37
字符串转json ,下面这种方式会把原有的字符串顺序打乱,所以不采用jsonobject jsonobject = json.parseobject(你的json);要先转为linkedhashmap...

字符串转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值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。