Json格式的字符串修改对应Key的Value值,并保存到原json字符串中
一、前言
小编今天在工作工程中,遇到了一个处理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字符串中相关推荐
- sex 无需下载_js读取本地json格式文件数据的几种实现方法,内有vue读取json示例代码。...
方法一:通过getJSON实现 getJSON是jquery提供的读取json格式文件的方法 首先我们将html中引入jquery,可以通过百度CDN引入,代码如下: 然后就可以在script中使用g ...
- 保存到redis的字符串类型出现斜杆_深入浅出Redis:这次从Redis底层数据结构开始...
1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...
- mysql查询json格式的数据(以key为条件查询)
MySQL5.7以上支持JSON的操作,以及增加了JSON存储类型MySQL5.7以上支持JSON的操作,以及增加了JSON存储类型 MySQL根据JSON字段的内容检索查询数据 1.使用 字段-&g ...
- 一段字符串修改某一个位置的值
update test set name=REPLACE(name,SUBSTR(name,3,1),'P') -- 把第三位数替换为P REPLACE -- 替换 字段 ...
- Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 获取map的值主要有四种方法,分为两类: 调用 map.keySet() 方法来获取 key ...
- Map四种获取key和value值的方法,以及对map中的元素排序
2019独角兽企业重金招聘Python工程师标准>>> 获取map的值主要有四种方法,这四种方法又分为两类: 一类是调用map.keySet()方法来获取key和value的值, 另 ...
- 如何判断字符串是否为JSON格式
提示:仅供个人学习参考,如果错误的地方,欢迎指出 如何判断对象是否为JSON格式 实例 实例 可以通过JSON.parse(str)方法判断,如果str不是JSON格式,则会抛出异常 function ...
- java读写json格式的文件方法详解.txt,并批量存储进redis
捐躯赴国难,视死忽如归.恸哭六军俱缟素,冲冠一怒为红颜.君子坦荡荡,小人长戚戚.风日晴和人意好,夕阳箫鼓几船归.民为贵,社稷次之,君为轻.Java 读写json格式的文件方法详解 文章录入:7747. ...
- Spring MVC 学习笔记 json格式的输入和输出
Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用 <!-- json --><depe ...
最新文章
- isContinuous 反色处理
- 计算机88端口,计算机常用端口一览表
- 类的静态成员函数和静态成员变量的使用
- 冷迁移oracle数据库,数据库的冷备份迁移
- 搭配android环境,Android Studio环境搭配所用到的工具和配置
- 阿里云 Debian 9.2 安装 Java Web 环境
- 如日中天的Uber到底是用什么开发语言做到的?
- 用 Javascript 生成二维码
- Qt随机数生成器:QRandomGenerator
- 将Python程序打包成exe文件
- 886n虚拟服务器ip,tl-wr886n怎么配置ip带宽控制
- Mac 用久了空间不足?教你如何清理磁盘空间
- TP-LINK路由器配置
- Wireshark数据包分析——Teardrop泪滴攻击
- 《第七堂棒球课》:MLB棒球创造营·棒球名人堂
- 用于Transformer的6种注意力的数学原理和代码实现
- SSO(single sign on)模式 单点登录
- Learning and Meta-Learning of Stochastic Advection-Diffusion-Reaction Systems from Sparse Measuremen
- Python自述和简介
- 一个很简单的基于栈式过程虚拟机的实现,它运行目标平台【x86】的原生代码。
热门文章
- Fifth season ninth episode,do not touch my Sandwich!!!hahaha
- 在python中用pyTorch实现数字(0~9)语音识别
- 工作汇报怎么写?4种工作汇报套路不可不知
- Es6学习回顾(非完整版)
- 多相Buck电压调节器的数字控制
- 搞软件的必知------行业八大类软件
- jquery电商分类导航js特效
- 一个程序在计算机中是如何运行的
- 设A是m*n实矩阵,证明:R(A'A)=R(AA')=R(A)
- Egret之MC逐帧动画