一、前言

小编今天在工作工程中,遇到了一个处理json字符串的问题,经过半小时的测试,最终解决了此问题!记录一下,为后来人铺路。
小编先说一下需求哈:
我们要把json字符串中的指定key的value修改并重新返回一个修改后的json字符串!

二、需求确认

简单说就是:把

[{"childs":[{"address":"山东","phone":"12344444"}],
"password":"123","username":"wang"}]

childs集合里新增一条,然后再替换一下原来的json字符串

[{"childs":[{"address":"北京","phone":"21212121"},
{"address":"山东","phone":"12344444"}],"password":"123","username":"wang"}]

现在大家知道我们的目的了吧!那就开始解决问题!!!我们以FastJson为例,虽然他有风险,但是小编还是喜欢用这个!

三、导入Maven依赖

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId>
</dependency>

四、测试样例

我们先准备好json字符串:

{"childs":[{"address":"北京","phone":"21212121"},
{"address":"山东","phone":"12344444"}],"password":"123","username":"wang"}

直接测试:

public class JsonTest {public static void main(String[] args) {Json json = new Json();json.setPassword("123");json.setUsername("wang");List<Json.Child> childs = new ArrayList<>();Json.Child child = new Json.Child();child.setAddress("山东");child.setPhone("12344444");Json.Child child2 = new Json.Child();child2.setAddress("北京");child2.setPhone("21212121");childs.add(child2);childs.add(child);json.setChilds(childs);// 准备数据String jsonString = JSON.toJSONString(json);System.out.println(jsonString);String jsonEdit = jsonEdit(jsonString);System.out.println(jsonEdit);}private static String jsonEdit(String json){// 首先转化为jsonObject对象,为了后面我们更新key对应的value做准备JSONObject jsonObject = JSONObject.parseObject(json);// 把json里的childs拿出来新增一个对象String childs = JSONObject.parseObject(json).getString("childs");List<Json.Child> jsonList =  JSON.parseArray(childs, Json.Child.class);Json.Child child = new Json.Child();child.setPhone("110");child.setAddress("青岛市");jsonList.add(child);// 把修改后的内容替换原来的valuejsonObject.put("childs",jsonList);String jsonString = jsonObject.toString();return jsonString;}
}

测试结果:

{"password":"123","childs":[{"address":"北京","phone":"21212121"},
{"address":"山东","phone":"12344444"},
{"address":"青岛市","phone":"110"}],"username":"wang"}

五、总结

这样就完成了哈,小编在测试中多toString()了一下,就出现多\和"找了好一会,分享一个去的方法,不是使用replace替换的!不过已经过时了,大家有好的方法也可以评论区留言哈

String newString = StringEscapeUtils.unescapeJson("要被转化的json字符串");

小编这么用心分享自己的心得,还不一键三连!我们来日方长呀!!!


有缘人才可以看得到的哦!!!

点击访问!小编自己的网站,里面也是有很多好的文章哦!

Json格式的字符串修改对应Key的Value值,并保存到原json字符串中相关推荐

  1. sex 无需下载_js读取本地json格式文件数据的几种实现方法,内有vue读取json示例代码。...

    方法一:通过getJSON实现 getJSON是jquery提供的读取json格式文件的方法 首先我们将html中引入jquery,可以通过百度CDN引入,代码如下: 然后就可以在script中使用g ...

  2. 保存到redis的字符串类型出现斜杆_深入浅出Redis:这次从Redis底层数据结构开始...

    1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...

  3. mysql查询json格式的数据(以key为条件查询)

    MySQL5.7以上支持JSON的操作,以及增加了JSON存储类型MySQL5.7以上支持JSON的操作,以及增加了JSON存储类型 MySQL根据JSON字段的内容检索查询数据 1.使用 字段-&g ...

  4. 一段字符串修改某一个位置的值

    update  test  set   name=REPLACE(name,SUBSTR(name,3,1),'P')  --  把第三位数替换为P REPLACE  -- 替换   字段      ...

  5. Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 获取map的值主要有四种方法,分为两类: 调用 map.keySet() 方法来获取 key ...

  6. Map四种获取key和value值的方法,以及对map中的元素排序

    2019独角兽企业重金招聘Python工程师标准>>> 获取map的值主要有四种方法,这四种方法又分为两类: 一类是调用map.keySet()方法来获取key和value的值, 另 ...

  7. 如何判断字符串是否为JSON格式

    提示:仅供个人学习参考,如果错误的地方,欢迎指出 如何判断对象是否为JSON格式 实例 实例 可以通过JSON.parse(str)方法判断,如果str不是JSON格式,则会抛出异常 function ...

  8. java读写json格式的文件方法详解.txt,并批量存储进redis

    捐躯赴国难,视死忽如归.恸哭六军俱缟素,冲冠一怒为红颜.君子坦荡荡,小人长戚戚.风日晴和人意好,夕阳箫鼓几船归.民为贵,社稷次之,君为轻.Java 读写json格式的文件方法详解 文章录入:7747. ...

  9. Spring MVC 学习笔记 json格式的输入和输出

    Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用 <!-- json --><depe ...

最新文章

  1. isContinuous 反色处理
  2. 计算机88端口,计算机常用端口一览表
  3. 类的静态成员函数和静态成员变量的使用
  4. 冷迁移oracle数据库,数据库的冷备份迁移
  5. 搭配android环境,Android Studio环境搭配所用到的工具和配置
  6. 阿里云 Debian 9.2 安装 Java Web 环境
  7. 如日中天的Uber到底是用什么开发语言做到的?
  8. 用 Javascript 生成二维码
  9. Qt随机数生成器:QRandomGenerator
  10. 将Python程序打包成exe文件
  11. 886n虚拟服务器ip,tl-wr886n怎么配置ip带宽控制
  12. Mac 用久了空间不足?教你如何清理磁盘空间
  13. TP-LINK路由器配置
  14. Wireshark数据包分析——Teardrop泪滴攻击
  15. 《第七堂棒球课》:MLB棒球创造营·棒球名人堂
  16. 用于Transformer的6种注意力的数学原理和代码实现
  17. SSO(single sign on)模式 单点登录
  18. Learning and Meta-Learning of Stochastic Advection-Diffusion-Reaction Systems from Sparse Measuremen
  19. Python自述和简介
  20. 一个很简单的基于栈式过程虚拟机的实现,它运行目标平台【x86】的原生代码。

热门文章

  1. Fifth season ninth episode,do not touch my Sandwich!!!hahaha
  2. 在python中用pyTorch实现数字(0~9)语音识别
  3. 工作汇报怎么写?4种工作汇报套路不可不知
  4. Es6学习回顾(非完整版)
  5. 多相Buck电压调节器的数字控制
  6. 搞软件的必知------行业八大类软件
  7. jquery电商分类导航js特效
  8. 一个程序在计算机中是如何运行的
  9. 设A是m*n实矩阵,证明:R(A'A)=R(AA')=R(A)
  10. Egret之MC逐帧动画