16

エラー org.json.JSONException: No value for PROJECT_NAME This is my json が表示されます

{"PROJECTS":[ 
         {
            "PROJECT_NUMBER": "2062",
            "PROJECT_NAME": "OPW 51183"
         },
         {
            "PROJECT_NUMBER": "404",
            "PROJECT_NAME": "404"
         },
         {
            "PROJECT_NUMBER": "2125",
            "PROJECT_NAME": "OPW 50016"
         },
         {
            "PROJECT_NUMBER": ""
         },
         {
            "PROJECT_NUMBER": "2130",
            "PROJECT_NAME": "OPW 51151 63rd & Shirley SEW S"
         },
         {
            "PROJECT_NUMBER": "2159",
            "PROJECT_NAME": "OPW 51226"
         }
        ]

    }

そしてタラは:

for (int i = 0; i < innerProjectarray.length(); i++) 
    {

JSONObject obj=innerProjectarray.getJSONObject(i);
String projectnumber1=obj.getString("PROJECT_NUMBER");
String projectname1=obj.getString("PROJECT_NAME");
        }

キーが存在しない場合にキーを見つける方法はありますか? np は特定の文字列の値を取得する必要があります。

4

8 に答える 8

3

// パラメータまたは変数が JSON オブジェクトに存在しない場合、それ以上のコードは実行されず、例外がスローされるため、次のように使用することをお勧めします。

try {

            JSONObject data = coupon;



                if(data.has("event_recurring_text")) {

                    if ("".equals(data.getString("event_recurring_text"))) {

                        bundle.putString("event_time", data.getString("event_recurring_text"));

                    } else {

                        bundle.putString("event_time", data.getString("event_time"));
                    }
                }
            }// end if



        } catch (JSONException e) {

            Log.i("Handler 4","JSONException: Handled");            
            e.printStackTrace();
        }

//ここでdata.has()メソッドで変数の有無を調べてオブジェクトに

//vKj

于 2014-02-11T11:36:28.423 に答える
1
for (int i = 0; i < innerProjectarray.length(); i++) {

    JSONObject jobject = innerProjectarray.getJSONObject(i);
    if (jobject .has("PROJECT_NUMBER")) {
        String strnumber = jobject .getString("PROJECT_NUMBER");
    }

    if (jobject .has("PROJECT_NAME")) {
        String strname= jobject .getString("PROJECT_NAME");
    }
}
于 2016-09-30T10:15:34.560 に答える
1
   {
        "PROJECT_NUMBER": ""
     },

ここには「PROJECT_NUMBER」しかありません。例外があるからです。それに対処する方法を見つけてみてください。

于 2013-09-27T05:25:09.670 に答える
0

この回答が誰かがこのような問題を抱えているのに役立つことを願っています.JSONarray名には二重引用符で囲まれたスペースがあるため、空のスペースは文字と見なされます. これは一種の API の問題です。スペースを削除するように要求すると、開発者が苦しむことになります。

"jobtype ": [
      {
        "id": "1006",
        "name": "Apprenticeship"
      }
    ]

LogCat:例外 org.json.JSONException:値がありません

于 2016-09-22T14:50:41.147 に答える