检查JSONObject是否为null,这样做会导致我的应用程序崩溃

时间:2016-08-21 06:15:58

标签: java android json

我试图查看 tableRtf.Append(@"\intbl 1" + @"\cell Raj" + @"\cell Bangalore" + @"\cell India" + @"\row"); tableRtf.Append(@"\intbl 2" + @"\cell Peter" + @"\cell Mumbai" + @"\cell India" + @"\row"); tableRtf.Append(@"\intbl 3" + @"\cell Chris" + @"\cell Delhi"+ @"\cell India" + @"\row"); ' FirstItemMGNAME2'是null,但是当它为null时它只是崩溃程序,当它不为null时,它只显示else语句。

简而言之,我只是试图查看一个字符串是否存在于JSONObject中,并创建一个if语句

JSONObject

以下是应用崩溃时的logcat

JSONObject FirstItemMGNAME2 = FirstItemArrayMG.getJSONObject(FirstItemArrayMG.length() - 2);
if (FirstItemMGNAME2.isNull("name")){
    FirstItemIDMGNAME2 = "1";
}
else {
    FirstItemIDMGNAME2 = FirstItemMGNAME2.getString("name");
}

当人们在这里要求我的所有代码时 - http://pastebin.com/JYsinqRw(由于身体被限制为30,000个字符,必须在pastebin上)

3 个答案:

答案 0 :(得分:0)

试试optJSONObjet(String arg1)。如果没有字段,则返回nullgetJSONObject会抛出JSONException而不是返回null

FirstItemMGNAME2可能是null

答案 1 :(得分:0)

尝试与Json String比较,而不是像

这样的json对象
    if (FirstItemMGNAME2.getString("name").equals("")){
            FirstItemIDMGNAME2 = "1"   
            }
            else {
            FirstItemIDMGNAME2 = FirstItemMGNAME2.getString("name");
            }

如果这不能解决,请发送你的json结构

答案 2 :(得分:0)

通过将其放在try catch块中来修复 -

try {

JSONObject FirstItemMGNAME3 = FirstItemArrayMG.getJSONObject(FirstItemArrayMG.length() - 3);
                    if (FirstItemMGNAME3.isNull("name")){
                        FirstItemIDMGNAME3 = "1";
                    }
                    else {
                        FirstItemIDMGNAME3 = FirstItemMGNAME3.getString("name");
                    }
} catch (JSONException c) {
    c.printStackTrace();}