java - 如何将对象添加到 JSONArray
问题描述
我想将一个对象添加到数组中。如果 的数据other_amount
大于零,我想再添加一个对象。如果它等于零,它应该什么都不加。这是我的代码:
JSONArray acc_data = new JSONArray();
Map<String, Object> myaccount = new LinkedHashMap<>();
for (int i = 0; i < mpay.size(); i++) {
if(other_amount>0){
myaccount.put("poAccount", other_account);
myaccount.put("poAmount", other_amount);
system.out.println(myaccount);
//{poAccount=050017, poAmount=12}
}
myaccount.put("poAccount", amount_account);
myaccount.put("poAmount", amount);
system.out.println(myaccount);
//{"poAccount":"050016","poAmount":"800"}
acc_data.add(myaccount);
system.out.println(acc_data);
//[{"poAccount":"050016","poAmount":"800"}]
}
但我需要这样:
//[{"poAccount":"050016","poAmount":"800"},{poAccount=050017, poAmount=12}]
请帮我解决它。
解决方案
你不应该在你的情况下使用地图。当您将现有的对放在映射键中时,该对将被覆盖。例如
map.put ("k1","v1");
映射包含一对 "k1":"v1" 下一个调用
map.put ("k1","newV1");
第一对将被覆盖,地图仍然包含一对:“k1”:“newV1”
对于您的情况,最好使用 2 个字段poAccount
和poAmount
. 并将它们添加到 JSONArray
推荐阅读
- reactjs - 使用 babel7 时,forwardRef 不是 buildReactRelayContainer 的函数
- assembly - MIPS 不能在程序中改变值
- python - 从另一个 Python 文件执行函数时遇到问题
- database - 我需要什么类型的数据库?
- java - Java 与 Swift 中的常量类型
- python - ModuleNotFoundError:没有名为“speech_recognition”的模块
- python - 使用 Dask 读取多个文件
- c++ - C++ 打印包含数据结构的数组
- c# - Xamarin Forms - 如何在 ListView 中显示 JSON 数组?
- php - 无法连接到我的数据库并通过 PHP 脚本插入信息