【发布时间】:2019-08-09 07:05:08
【问题描述】:
我有这个String data = "[ {\"pname\":\"7\", \"qty\":\"222\"}, {\"pname\":\"8\", \"qty\":\"5\"}, {\"pname\":\"10\", \"qty\":\"65\"}, ]" ;
在数组列表中,我想将它们放在每个循环的变量上并将其保存到数据库中,但是现在我出于调试目的执行此代码,因为在代码的第一个循环中,它应该输出“qty”值,但它是一个像这样的空值{"pname":"7","qty":"222"} null 但在下一次循环运行时它输出这个{"pname":"8","qty":"5"} 222 似乎在第二个循环上,第一个对象的数量值然后在第二个循环中被采用,最终输出是这个
{"pname":"7","qty":"222"} null {"pname":"8","qty":"5"} 222 {"pname":"10","qty":"65"} 5
这是我的代码
String data = "[ {\"pname\":\"7\", \"qty\":\"222\"}, {\"pname\":\"8\", \"qty\":\"5\"}, {\"pname\":\"10\", \"qty\":\"65\"}, ]" ;
HashMap<String, String> item = new HashMap<String, String>();
JSONArray jsonArray = new JSONArray(data);
JSONObject jsonObject = new JSONObject();
ArrayList<HashMap> mylist = new ArrayList<HashMap>();
String txtPname = "", txtQty = "";
if (jsonArray == null) {
System.out.println("json is empty");
} else {
for (int i = 0; i < jsonArray.length(); i++) {
jsonObject = jsonArray.getJSONObject(i);
txtPname = item.put("pname", jsonObject.getString("pname"));
txtQty = item.put("qty", jsonObject.getString("qty"));
output.append(jsonObject).append(" ");
output.append(txtQty).append(" ");
}
}
谁能帮我解决这个问题?任何帮助将不胜感激,谢谢!!!
【问题讨论】:
-
请添加您正在使用的循环。
-
@Markus Deibei,是的,我添加了它,我立即编辑了帖子。请看上面的代码,谢谢
-
您的输出和循环不适合。
jsonObject = jsonArray.getJSONObject(0);行应始终引用列表中的同一对象。这应该是jsonObject = jsonArray.getJSONObject(i); -
是的,这正是我的循环目前的样子,只是当我把它放在这个问题上时,我有错字,对不起,实际上是我,但输出仍然是一样的