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

 更新时间:2020年11月24日 14:43:14   作者:那一抹阳光爱发呆  
这篇文章主要介绍了如何修改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字符串中的值被修改了,但是字段的顺序却发生了变化,因为JsonObject是用HashMap来存储的,

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

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

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

以上这篇如何修改json字符串中某个key对应的value值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • IDEA热部署配置详细教程

    IDEA热部署配置详细教程

    这篇文章主要介绍了IDEA热部署配置详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Spring Data JPA+kkpager实现分页功能实例

    Spring Data JPA+kkpager实现分页功能实例

    本篇文章主要介绍了Spring Data JPA+kkpager实现分页功能实例,具有一定的参考价值,有兴趣的可以了解一下
    2017-06-06
  • Java集合TreeSet用法详解

    Java集合TreeSet用法详解

    本文详细讲解了Java集合TreeSet用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Spring Boot整合阿里开源中间件Canal实现数据增量同步

    Spring Boot整合阿里开源中间件Canal实现数据增量同步

    这篇文章主要为大家介绍了Spring Boot整合阿里开源中间件Canal实现数据增量同步示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Layui前后台交互数据获取java实例

    Layui前后台交互数据获取java实例

    下面小编就为大家分享一篇Layui前后台交互数据获取java实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • JAVA实现微信APPV3支付保姆级教程

    JAVA实现微信APPV3支付保姆级教程

    微信实现支付功能与支付宝实现支付功能是相似的,这篇文章主要介绍了JAVA实现微信APPV3支付的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • jdbc中class.forname的作用

    jdbc中class.forname的作用

    这篇文章主要介绍了jdbc中class.forname的作用,使用示例说明了他作用及使用方法,大家参考使用吧
    2014-01-01
  • Spring中@Scope的几种取值方式

    Spring中@Scope的几种取值方式

    这篇文章主要介绍了Spring中@Scope的几种取值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • @JsonFormat处理LocalDateTime失效的问题

    @JsonFormat处理LocalDateTime失效的问题

    这篇文章主要介绍了关于@JsonFormat处理LocalDateTime失效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 区块链常用数据库leveldb用java来实现常规操作的方法

    区块链常用数据库leveldb用java来实现常规操作的方法

    这篇文章主要介绍了区块链常用数据库leveldb用java来实现常规操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02

最新评论