嘿!
我有一个包含电视 channel 的 JSON 数组,数组的长度为 3,但传输到树形图后,值只有 1。
请帮忙
代码:
try
{
JSONObject menuobj = this.getJSONObject("responseData");
Log.e("XXX", menuobj.toString());
JSONArray array = menuobj.getJSONArray("countries");
TreeMap<String, Integer> map = new TreeMap<String, Integer>();
for (int i = 0; i < array.length(); i++)
{
JSONObject obj = new JSONObject();
obj = array.getJSONObject(i);
if (obj.getString("name").equals(country))
{
Log.e("XXX2", obj.toString());
JSONArray arr = obj.getJSONArray("channels");
Log.e("XXX3", String.valueOf(arr.length()));
for (int j = 0; j < arr.length(); j++)
{
JSONObject obj2 = new JSONObject();
obj2 = arr.getJSONObject(i);
map.put(obj2.getString("name"), obj2.getInt("id"));
}
Log.e("XXX4", String.valueOf(map.size()));
return map;
}
}
日志猫:
02-01 18:24:20.277: ERROR/XXX(3784): {"countries":[{"id":"1","channels":[{"id":"3","name":"ARD"},{"id":"1","name":"ORF 1"},{"id":"2","name":"ORF 2"}],"name":"Ã?sterreich"},{"id":"2","channels":[{"id":"3","name":"ARD"}],"name":"Deutschland"}]}
02-01 18:24:20.288: ERROR/XXX2(3784): {"id":"1","channels":[{"id":"3","name":"ARD"},{"id":"1","name":"ORF 1"},{"id":"2","name":"ORF 2"}],"name":"Ã?sterreich"}
02-01 18:24:20.297: ERROR/XXX3(3784): 3
02-01 18:24:20.307: ERROR/XXX4(3784): 1
最佳答案
我相信:
obj2 = arr.getJSONObject(i);
应该是
obj2 = arr.getJSONObject(j);
因此,您将三倍相同的键/值对象对放入映射中。
关于java - JSON 数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4866464/