生产中遇到jsonobject的添加,但是会遇到许多的相同的key值,如果put的话就会覆盖之前的value。‘
上原网址看有配图
http://www.jianshu.com/p/924d92cf5eed
在许多的解决方法中大多数人是在for循环里写了JSONObject newjson = new JSONObject();

这么一句,但是我要这种形式的怎么办? {“王焕”:”经理,执行董事”}是不是不能这么写了,如果这样写得到的是什么呢?控制台输出如下:

{“王焕”:”经理”} {“王焕”:”执行董事”}

经过三个小时的研究我发现,如果你new一个和之前相同的key的话他会返回之前的value,如果之前没有的话就会返回空。如下图:
JSONObject newjson = new JSONObject();
newjson.put(“李白”,”诗人”);
newjson.put(“王维”, “诗人”);
newjson.put(“李白”, “剑客”);
Object xx = newjson.put(“韩愈”, “教育家”);
Object xx1 = newjson.put(“王维”, “山西人”);
System.out.println(xx);
System.out.println(xx1);
——————————————————————————————————
null
诗人

不知道你们看懂没?王维是之前出现过的key值,再一次put就会返回之前的value值,韩愈之前没有,所以返回null。这是发现很有帮助,思维如下

借用返回值是否为空做一个判断,如果返回值为空,那就不管他,添加就好,如果返回值不是空说明这个key之前已经添加过,再次添加则会覆盖掉返回值,那怎么办,不为空put的时候把返回值拼接。这里我没有if判断。如图:

JSONObject newjson = new JSONObject();
newjson.put(“李白”,”诗人”);
newjson.put(“王维”, “诗人”);
newjson.put(“李白”, “剑客”);
Object xx = newjson.put(“韩愈”, “教育家”);
Object xx1 = newjson.put(“王维”, “山西人”);
newjson.put(“王维”, “山西人”+”,”+xx1);
System.out.println(newjson.toJSONString());
System.out.println(xx);
System.out.println(xx1);
——————————————————————————
{“李白”:”剑客”,”王维”:”山西人,诗人”,”韩愈”:”教育家”}
null
诗人

这样就达到目的了。生产的源码就不粘了,道理是一样的不过生产中还有其他的业务逻辑。

JSONObject.put 覆盖原有数据,解决办法相关推荐

  1. java一次性查询几十万,几百万数据解决办法

    java查询一次性查询几十万,几百万数据解决办法 很早的时候写工具用的一个办法. 当时是用来把百万数据打包 成rar文件. 所以用了个笨办法. 希望高手指导一下,有什么好方法没有啊 1.先批量查出所有 ...

  2. python 采用to_csv保存数据不覆盖原有数据到文件中

    采用to_csv保存数据不覆盖原有数据到文件中 df.to_csv(date+'.csv',index = False,header=0,mode='a') 关键是 mode参数

  3. java 百万数据查询_java一次性查询几十万,几百万数据解决办法

    java查询一次性查询几十万,几百万数据解决办法 很早的时候写工具用的一个办法. 当时是用来把百万数据打包 成rar文件. 所以用了个笨办法. 希望高手指导一下,有什么好方法没有啊 1.先批量查出所有 ...

  4. java查询几万条数据_java一次性查询几十万,几百万数据解决办法(转载)

    0hB)H"aK ZJ%K Z0java查询一次性查询几十万,几百万数据解决办法51Testing软件测试网0L?pAzOk51Testing软件测试网2@ai.g\1p 很早的时候写工具用 ...

  5. java查询几万条数据_java一次性查询几十万,几百万数据解决办法

    java一次性查询几十万,几百万数据解决办法 java查询一次性查询几十万,几百万数据解决办法 很早的时候写工具用的一个办法. 当时是用来把百万数据打包 成rar文件. 所以用了个笨办法. 希望高手指 ...

  6. word绘制柱状图显示少一列数据-解决办法

    问题: 在word绘制柱状图,编辑excel数据,把别处复制来的表格黏贴到这,原来数据为6行5列,但是在柱状图只显示6行4列的数据??? 解决办法: 错误做法: 在别处复制表格的时候,复制的时候不要点 ...

  7. Simulink工作区无法保存To workspace模块的数据解决办法

    1.首先要搞清楚Workspace概念.包括基本工作区(base workspace)和函数工作区.默认条件下在命令窗口中输入命令使用的是base workspace,但对于每个函数,都有自己独立的工 ...

  8. 微信小程序wx.request POST获取不到数据解决办法

    get //发起请求     wx.request({       url: 'http://www.xiaochengxu.com/home/index/curd', //仅为示例,并非真实的接口地 ...

  9. fastjson JSONObject.toJSONString 出现 $ref: $.的解决办法(重复引用)

    首先,fastjson作为一款序列化引擎,不可避免的会遇到循环引用的问题,为了避免StackOverflowError异常,fastjson会对引用进行检测. 如果检测到存在重复/循环引用的情况,fa ...

最新文章

  1. 使用Pygame制作微信打飞机游戏PC版
  2. 要让OKR真正”OK“,这三点一定要注意!
  3. C#中Cache的使用
  4. Oracle高级查询之OVER (PARTITION BY ..)
  5. 安装rational rose
  6. 安装了一次Linux,哈哈
  7. 最长非下降子序列(O(nlogn))(offer收割)
  8. 使用FlashFXP V3.8烈火汉化绿色版软件连接Linux
  9. Macos 12 打不开微信解决方案
  10. 每天一道剑指offer-旋转数组的最小数字
  11. presto 使用 部署_探秘Presto+Alluxio高效云端SQL查询
  12. centos网卡错误Device eth0 does not seem to be present
  13. vb.net 教程 目录
  14. opensuse 安装网易云音乐(tumbleweed)(leap)
  15. 计算机程序员求职信英语作文,程序员英文求职信范文
  16. linux跨平台通信软件,下载:跨平台即时通信工具Pidgin 2.7.5
  17. 第五章第二十八题(显示每月第一天是星期几)(Display the first days of each month)
  18. fx5u模拟量如何读取_三菱FX5U PLC内置模拟量输入为电流怎么设置?
  19. html div位于居中元素右边,如何居中一个元素(终结版)
  20. Facebook 如何存储150亿张、1.5PB的照片

热门文章

  1. information about btcoin
  2. MAC jmeter+ant 实现接口测试并将接口测试报告以邮件的形式发出-超详细
  3. jQuery之从零开始的学习(完整整理)
  4. 《乘风破浪的姐姐》来啦!让我们用数据分析谁能最终成团
  5. 导出CSV后,时间字段无法自动识别-0xEF,0xBB,0xBF
  6. 汇顶科技外包java_【汇顶科技有限公司Java面试】2020春季校招后端Java-看准网
  7. 微信小程序学习-组件Map-地图初始定位
  8. Linux入门学习笔记之基础
  9. 零基础Bootstrap入门教程(25)--折叠面板、折叠面板导航
  10. office2016 下载路径