java - JSON 数组问题

标签 java android json

嘿!

我有一个包含电视 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/

相关文章:

java - 可选用法的问题 (java 8)

json - 解码对象,其中一个对象是JSON字符串

android - 已收到 GCM 消息但未显示 - 广播接收器结果=已取消 - 服务强制停止

Android "scroll"TextView 中的文本

java - 如何使用 Jackson 的@JsonIdentityInfo 进行有向图的反序列化?

java - MsgPack 在 Android 中序列化一个 JsonObject

java - Jetty 没有接受我的 Spring 申请

java - Java中的嵌套数据结构(内部类)

java - GWT CellTable getRowElement 抛出 IndexOutOfBoundsException

android - 无法在自定义颜色选择器中使用标准的 android 颜色属性