Android解析json的问题

Android解析json的问题,android,json,string,parsing,object,Android,Json,String,Parsing,Object,你好,我正在尝试从我的网站解析json。我从Te httpresponse获得的Te jsonString工作正常,但当我尝试在JSONObject中解析它时,它会给出一个NPE。 这是目前使用的json im测试: { "galgjejson" : { "Nederlands" : { "length7" : [ { "w

你好,我正在尝试从我的网站解析json。我从Te httpresponse获得的Te jsonString工作正常,但当我尝试在JSONObject中解析它时,它会给出一个NPE。 这是目前使用的json im测试:

{ "galgjejson" :
        { "Nederlands" :  
                            { "length7" : [ 
                                                { "word" : "android" }, 
                                                { "word" : "camping" },
                                                { "word" : "koekjes" }
                                            ]
                            }, 
                            { "length8" : [
                                                { "word" : "androids" },    
                                                { "word" : "campings" },
                                                { "word" : "campings" },
                                                { "word" : "campings" },
                                                { "word" : "campings" },
                                                { "word" : "campings" },
                                                { "word" : "scheppen" }
                                            ]
                            },
                            { "length9" : [
                                                { "word" : "verslapen" },
                                                { "word" : "versleten" },
                                                { "word" : "verbrande" }
                                            ]
                            },
                            { "length10" : [    
                                                { "word" : "verslapend" },
                                                { "word" : "versletend" },
                                                { "word" : "verbranden" },
                                                { "word" : "verbranden" },
                                                { "word" : "verbranden" }
                                            ]
                            },
                            { "length11" : [
                                                { "word" : "verslapende" },
                                                { "word" : "versletende" }
                                            ]
                            },
                            { "length12" : [
                                                { "word" : "verslapenden" }
                                            ]
                            }
        },
        { "English" : 
                            { "length7" : [ 
                                                { "word" : "leavers" }, 
                                                { "word" : "shoping" },
                                                { "word" : "cooking" }
                                            ]
                            },
                            { "length8" : [
                                                { "word" : "stopping" },    
                                                { "word" : "sleeping" },
                                                { "word" : "starting" },
                                                { "word" : "starting" },
                                                { "word" : "starting" },
                                                { "word" : "starting" },
                                                { "word" : "starting" }
                                        ]
                            },
                            { "length9" : [
                                                { "word" : "somewordd" },
                                                { "word" : "somewordd" },
                                                { "word" : "somewordd" }
                                            ]
                            },
                            { "length10" : [
                                                { "word" : "someworddd" },
                                                { "word" : "someworddd" }
                                            ]
                            },
                            { "length11" : [
                                                { "word" : "somewordddd" },
                                                { "word" : "somewordddd" },
                                                { "word" : "somewordddd" },
                                                { "word" : "somewordddd" },
                                                { "word" : "somewordddd" }
                                            ]
                            },
                            { "length12" : [
                                                { "word" : "someworddddd" },
                                                { "word" : "someworddddd" },
                                                { "word" : "someworddddd" }
                                            ]
                            }

        }

}
我的方法是:

    public MikeyJSON(String jsonString) {
    Log.i("JSON", "jsonString: " + jsonString);
    try {
        JSONObject myObject = new JSONObject(jsonString);
        Log.i("JSON", "myObject_Object: " + myObject.toString());
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

public String getResult(String lang, String length, int wordPos) {
    String word = "0";  

    try {
        langObject = myObject.getJSONObject(lang);
        Log.i("JSON", "Language_Object " + langObject.toString());
        lengthObject = langObject.getJSONObject(length);
        Log.i("JSON", "wordlength_Object " + lengthObject.toString());
        wordArray = lengthObject.getJSONArray(length);
        Log.i("JSON", "wordlength_Object " + wordArray.toString());
        if(wordPos>wordArray.length()) {
            wordPos = 0;
        }
        for(i=0;i<wordArray.length();i++){
            word = wordArray.getJSONObject(wordPos).toString();
        }
        Log.i("JSON", "word_Object " + word);

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return word;        
}
}

尝试将实体转换为字符串,如下所示,然后使用jason对象

  response = httpclient.execute(httpget);

HttpEntity entity = response.getEntity();

String responseBody = EntityUtils.toString(entity);

  JSONObject obj = new JSONObject(responseBody);

您的JSON无效-这是正确的格式:

{ "Nederlands" :  [
                        { "length7" : [ 
                                            { "word" : "android" }, 
                                            { "word" : "camping" },
                                            { "word" : "koekjes" }
                                        ]
                        }, 
                        { "length8" : [
                                            { "word" : "androids" },    
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "scheppen" }
                                        ]
                        }]
}

目前,“Nederlands”的格式是JSONArray(它包含多个JSONObject),但您的响应缺少方括号。如果您将“Nederlands”解析为JSONArray并逐个删除“length”JSONObject,那么您应该能够使其正常工作

使用GSON解析会更容易验证Json吗?复制粘贴到它表明它不正确。用于验证JSON。我尝试了你的JSON,但在第15行无效。是的,看起来无效,但为什么?(怎么了?)我不明白,因为jsonlint(链接的thx)和我的logcat是一样的。它需要一个字符串,其中有一个对象。谢谢,但我已经有了响应,当我记录它时,它会显示整个json。
{ "Nederlands" :  [
                        { "length7" : [ 
                                            { "word" : "android" }, 
                                            { "word" : "camping" },
                                            { "word" : "koekjes" }
                                        ]
                        }, 
                        { "length8" : [
                                            { "word" : "androids" },    
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "campings" },
                                            { "word" : "scheppen" }
                                        ]
                        }]
}