JSONObject的put方法覆盖已经添加过的数据,造成数据污染解决办法
2017-08-29 10:01
281 查看
实际开发过程中,对数据的封装过程中,我们有时会用到JSONObject来暂时存储数据,当使用JSONObject存储对象的时候,会出想这样一个问题,看下面示例:
JSONArray array = new JSONArray();
for(int i=0;i<10;i++){
array.put("data",i);
}你想要得到0到9的数值,但是你会发现,你最后得到的全部是9,这是因为你的array实例只有一个,如果你想得到不同的值,你需要实例化多个array,解决办法就是把array实例化放在循环里面,每次循环的时候都实例化一次:
for(int i=0;i<10;i++){
JSONArray array = new JSONArray();
array.put("data",i);
}
这样就不会出现后面的值覆盖前面的值的情况。
当然实际开发中,你可能需要把当前array实例里面的数值暂时保存,去处理需要传入该实例的其他数据,这时候,你就需要把array实例放在外面,在每次循环的时候,实例化一次,这样就可以满足一般的数据格式的处理操作,具体看下面代码:
JSONArray array = new JSONArray();
for(int i=0;i<10;i++){
array = new JSONArray();
array.put("data",i);
}array = new JSONArray();的位置,根据逻辑需要去放。
JSONArray array = new JSONArray();
for(int i=0;i<10;i++){
array.put("data",i);
}你想要得到0到9的数值,但是你会发现,你最后得到的全部是9,这是因为你的array实例只有一个,如果你想得到不同的值,你需要实例化多个array,解决办法就是把array实例化放在循环里面,每次循环的时候都实例化一次:
for(int i=0;i<10;i++){
JSONArray array = new JSONArray();
array.put("data",i);
}
这样就不会出现后面的值覆盖前面的值的情况。
当然实际开发中,你可能需要把当前array实例里面的数值暂时保存,去处理需要传入该实例的其他数据,这时候,你就需要把array实例放在外面,在每次循环的时候,实例化一次,这样就可以满足一般的数据格式的处理操作,具体看下面代码:
JSONArray array = new JSONArray();
for(int i=0;i<10;i++){
array = new JSONArray();
array.put("data",i);
}array = new JSONArray();的位置,根据逻辑需要去放。
相关文章推荐
- ArrayList add()方法覆盖数据解决办法
- Datatable添加数据,提示该行已经属于另一个表的解决方法
- Datatable添加数据,提示该行已经属于另一个表的解决方法
- 解决list.add() 方法会覆盖前面的已经添加好的参数
- 使用SqlBulkCopy对象进行大容量复制数据出现Datardader已经存在的错误的解决方法
- 在C#编程中要将一个表中的数据复制到另一个表中出现报错“该行已经属于另一个表”解决办法
- windows 2003 server远程桌面连接,”终端服务器超出了最大允许连接数“的解决办法以及无限时保持连接会话数据的方法
- Linq2Sql数据实体外部更新时“不能添加其键已在使用中的实体”的解决办法
- 【操作系统】chrome插件无法安装解决方法或者提示“将该项添加到 Chrome 浏览器时出错。请刷新此页面,然后重试。”的解决办法
- c#(winform)中自定义ListItem类方便ComboBox和ListBox添加项完全解决(DropDownList 和Combox 数据绑定的常用方法)
- Struts2 已经添加struts2-json-plugin但是仍然找不到json包的解决方法
- 智能设备下,在ComboBox控件添加了多项数据,只显示第一项数据,而不显示其它数据的问题解决办法
- 在ScrollView添加一个ListView造成的滚动问题的简单解决办法
- MSSQL SERVER 大量数据时,建立索引或添加字段后保存更改提示超时的解决方法
- 数据是信息的载体 当遇到由于设计不严谨造成信息没有被完全承载 造成的区分度不够问题 解决方法
- C# 数据为空,不能对空值调用此方法或属性的解决办法
- 基于MFC的dll中添加DllMain函数,编译时产生_DllMain@12 已经在 XXX.obj 中定义的解决方法
- js添加的表单在火狐下获取不到数据的解决方法
- SAP B1在添加物料主数据时,出现错误提示‘xxxx代码已存在’的解决方法
- 通过ORACLE 客户端, 在WINDOWS XP 上添加ORACLE ODBC SOURCE的方法 odbc数据源管理器没有oracle驱动的解决办法