简体   繁体   English

Android JSON解析Json Array []解析时抛出Null Pointer Exception,如何以正确的方式编写?

[英]Android JSON parsing Json Array is [] Throws Null Pointer Exception while parsing, How to write in Proper way?

I have complex API that i parse and show in list view,I will be struggle to parse JSONArray.Here i will be in struggle following Json Array which is inside the posts json object "tags_name": ["Activities"], ,some object it will come like "tags_name": [], this.Kindly review my question. 我有复杂的API,我要解析并在列表视图中显示,我将很难解析JSONArray。在这里,我将在帖子json对象“ tags_name”内的Json Array之后苦苦挣扎:[“ Activities”] ,,some object它会像“ tags_name”:[],这。请仔细检查我的问题。 My API and code is below. 我的API和代码如下。 Presently i will implemented parsing code with model class. 目前,我将使用模型类实现解析代码。 Once fix this issue i have to write list view coding please help me. 解决此问题后,我必须编写列表视图编码,请帮助我。 May be my question formation is in silly way. 可能是我的问题形成很愚蠢。 please it look like means give some suggestion to frame question. 请看起来像是对框架问题提出一些建议。 Thanks in Advance. 提前致谢。

MyAPI: MyAPI:

    {
    "status": true,
    "nextpage": 0,
    "count": 31,
    "data": {
        "postlist": [{
                "posts": {},
                "tags_name": ["Activities"],
                "images_count": 3,
                "images": [],
                "post_user": [],
                "is_encourage_user": true,
                "encourage_feed_id": "1093"
            },

            {
                "posts": {"id": "4647"},
                "tags_name": [],
                "images_count": 0,
                "images": [],
                "post_user": [],
                "is_encourage_user": true,
                "encourage_feed_id": "992"
            }

        ]
},
    "token": "wqeeqweqweqweqweqsfsdfsdf"
    }

My Method for Parsing 我的解析方法

private void parsingPostValues(String responseStatus) throws JSONException {
        JSONObject responseObject = new JSONObject(responseStatus);
        JSONObject datObject = responseObject.getJSONObject("data");
        JSONArray postArr = new JSONArray(datObject.getString("postlist"));
        for (int i = 0; i < postArr.length(); i++) {
            JSONObject tempPostObject = postArr.getJSONObject(i);
            JSONObject postObject = tempPostObject.getJSONObject("posts");

            //setTag Array- this is the functional area i'm in bottle-neck.
            try {
                JSONArray tagNameArr = tempPostObject.getJSONArray("tags_name");
                //ArrayList<Bean> tagListdata = new ArrayList<Bean>(tagNameArr.length());
                if (tagNameArr.length()>0) {
                    for (int tagInfo = 0; tagInfo < tagNameArr.length(); tagInfo++) {
                        // listdata.add(tagNameArr.get(i).toString());
                        String tagme = "";
                        //Bean tagBean = new Bean();
                        //tagBean.setTagsArray((tagme.isEmpty() ? tagNameArr.get(tagInfo).toString() : "null"));                            //tagBean.setTagsArray(tagNameArr.get(tagInfo).toString());
                        //tagListdata.add(tagBean);
                        //beanAccess.setTagsArray(tagNameArr.get(tagInfo));
                        System.out.println("Tags Array:"+tagInfo+":"+tagNameArr.get(tagInfo));
                    }
                    //beanAccess.setTagsArray(tagListdata);
                }

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

    }

replace this 取代这个

JSONArray postArr = new JSONArray(datObject.getString("postlist"));

To

JSONArray postArr = datObject.getJSONArray("postlist");

Replace 更换

String imgCount = tempPostObject.getString("images_count");
String is_encourage_user = tempPostObject.getString("is_encourage_user");

To

String imgCount = postObject.getString("images_count");
String is_encourage_user = postObject.getString("is_encourage_user");

It will work for you. 它将为您工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM