首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法正确解析JSON数据

无法正确解析JSON数据
EN

Stack Overflow用户
提问于 2016-04-21 17:40:44
回答 7查看 258关注 0票数 0

我正在通过查询URL获取JSON数据

代码语言:javascript
复制
http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors

但是当我解析时,我只得到了第一组数据,而不是第二组数据,不确定我在哪里出错了。如何从JSON数组中获取所有节点。谢谢你的帮助。

下面是我的代码:

代码语言:javascript
复制
        /**
         * getting Inbox JSON
         * */
        protected String doInBackground(String... args) {
            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();


            url = "http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors" 


            Log.d(TAG , "URL IS:" + url);
            JSONObject json = jsonParser.makeHttpRequest(url, "GET", params, false);

            Log.d("Parse", "Data : " + json.toString());


            try {

                data = json.getJSONArray("actors");

                    for (int i = 0; i < data.length(); i++) {
                        JSONObject c = data.getJSONObject(i);

                        //Here I am getting all values one by one


                    }




            } catch (JSONException e) {
                e.printStackTrace();
            } catch(Exception e){

            }

            return null;
        }

        protected void onPostExecute(String file_url) {
            // dismiss the dialog after getting all products
        }

    }
EN

回答 7

Stack Overflow用户

发布于 2016-04-21 18:32:07

实际上,您必须将所有数据分别设置为一些全局变量,然后在for循环中使用。尝试以下代码:

代码语言:javascript
复制
ArrayList<MyListEntity> subList;
for (int i = 0; i < data.length(); i++) {
    //get the information JSON object
    String subIDInfo = objSub.getJSONObject(i).toString();
    //create java object from the JSON object
    MyListEntity cat = gson.fromJson(subIDInfo, MyListEntity.class);
    //add to country array list
    subList.add(cat);
    }

这里MyListEntity是全局variables.In的类,你必须从JSON获取并设置你想要的变量。

票数 1
EN

Stack Overflow用户

发布于 2016-04-21 17:45:16

因为在for循环中,您不会对已解析的值做任何操作。在迭代循环之前,您需要将该值存储在某个地方。

代码语言:javascript
复制
for (int i = 0; i < data.length(); i++) {
    JSONObject c = data.getJSONObject(i);
    String weekId = null;
    weekId = c.getString("weekid"); //store this value in a String array or ArrayList
}
票数 0
EN

Stack Overflow用户

发布于 2016-04-21 17:50:57

代码语言:javascript
复制
ArrayList<String> weekId;

for (int i = 0; i < data.length(); i++) {
    JSONObject c = data.getJSONObject(i);
    String weekId = null;
    weekId.add(c.getString("weekid")); 


}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36765673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档