簡體   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?

我有復雜的API,我要解析並在列表視圖中顯示,我將很難解析JSONArray。在這里,我將在帖子json對象“ tags_name”內的Json Array之后苦苦掙扎:[“ Activities”] ,,some object它會像“ tags_name”:[],這。請仔細檢查我的問題。 我的API和代碼如下。 目前,我將使用模型類實現解析代碼。 解決此問題后,我必須編寫列表視圖編碼,請幫助我。 可能是我的問題形成很愚蠢。 請看起來像是對框架問題提出一些建議。 提前致謝。

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"
    }

我的解析方法

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();
            }

    }

取代這個

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

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

更換

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

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

它將為您工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM