我想给一个数组添加一个对象。如果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}]
请你帮我解决一下。
2条答案
按热度按时间to94eoyn1#
你不应该在你的情况下使用map。当你把对与现有的Map键放在一起时,对将被覆盖。例如
Map包含一对“k1”:“v1”下一个调用
第一对将被覆盖,Map仍包含1对:“k1”:“新版本1”
对于您的情况,最好使用两个字段
poAccount
和poAmount
定义简单的POJO类,并将它们添加到JSONArray中ia2d9nvy2#
您所遵循的方法不能满足您的要求。您应该使用pojo来存储记录,然后填充Json数组。您可以查看此代码并根据您的要求进行修改。
Mypojo类: