2016-10-15 10 views
-3

このJSON配列をアンドロイドで解析するにはどうすればよいですか?JSON PARSING ARRAY

Photograph of JSON

これは私のアンドロイドコードです:上記のコードを使用して

private Boolean parseData(){ 
    try{ 

     JSONArray ja = new JSONArray(jsonData); 
     JSONObject jo = null; 

     wantedLists.clear(); 
     WantedList wantedList; 

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

      jo = ja.getJSONObject(i); 
      String lastname=jo.getString("lastname"); 
      String alyas=jo.getString("alyas"); 
      String reward=jo.getString("reward"); 
      String authority=jo.getString("authority"); 
      String location_name=jo.getString("location_name"); 
      String firstname=jo.getString("firstname"); 
      String middlename=jo.getString("middlename"); 
      String imageUrl=jo.getString("url"); 
      wantedList = new WantedList(); 

      wantedList.setLastname(lastname); 
      wantedList.setAlyas(alyas); 
      wantedList.setAuthority(authority); 
      wantedList.setReward(reward); 
      wantedList.setLocation_name(location_name); 
      wantedList.setFirstname(firstname); 
      wantedList.setMiddlename(middlename); 
      wantedList.setImageUrl(imageUrl); 

      wantedLists.add(wantedList); 
     } 
    } 

、配列が解析されていない、誰かがバグを見つけることができますか?

+0

このリンクをチェックするhttp://stackoverflow.com/questions/18977144/how-to-parse-json-array-not-json-object-in-android – darwin

+0

あなたの期待する結果は?通常、PHPでは、個々の値にアクセスする必要がある場合は、jsonを使用してデコードします。 – DrewT

+0

エラーが発生しました –

答えて

0

あなたのJSONは、大文字の 'M' でmiddlenameを使用しています。

"Middlename": "Lumbres", 

しかし、あなたのJSONパーサーは小文字の 'M' でmiddlenameを使用しています。

String middlename=jo.getString("middlename"); 

org.json.JSONException: No value for middlenameエラーをスローする必要があります。

「middlename」を取得するようにアプリケーションのJSONパーサーを変更するか、レスポンスを吐くサーバーまたはモジュールを制御する場合はJSON応答を変更して「middlename」を使用します。

+0

ありがとう、私はそれを参照していない、私はPHPとアンドロイドで同じ名前をする必要がありますか? –

+0

はい、あなたのパーサのjsonキーとレスポンスが一致するはずです –

+0

その情報のために本当に多くの助けを借りて –