2016-12-22 25 views
1

URLからJSON REST API応答があります。
JSONデータを解析できません。
多くのソリューションを試しましたが、データを取得できませんでした。
レスポンスはかなり乱雑ですが、必要なデータが含まれています。
すべてのJSONオブジェクトは1つの配列にあります。ここでJSON REST APIの応答を解析できません

はJSONレスポンスです:。

[{"umeta_id":"1","user_id":"1","meta_key":"nickname","meta_value":"zfdz"},{"umeta_id":"2","user_id":"1","meta_key":"first_name","meta_value":""},{"umeta_id":"3","user_id":"1","meta_key":"last_name","meta_value":""},{"umeta_id":"4","user_id":"1","meta_key":"description","meta_value":""},{"umeta_id":"5","user_id":"1","meta_key":"rich_editing","meta_value":"true"},{"umeta_id":"6","user_id":"1","meta_key":"comment_shortcuts","meta_value":"false"},{"umeta_id":"7","user_id":"1","meta_key":"admin_color","meta_value":"fresh"},{"umeta_id":"8","user_id":"1","meta_key":"use_ssl","meta_value":"0"},{"umeta_id":"9","user_id":"1","meta_key":"show_admin_bar_front","meta_value":"true"}] 

コード」

if (jsonStr != null) { 
    try { 
     JSONObject jsonObj = new JSONObject(jsonStr); 

     // Getting JSON Array node 
     JSONArray contacts = jsonObj.getJSONArray(""); 

     // looping through All Contacts 
     for (int i = 0; i < contacts.length(); i++) { 
      JSONObject c = contacts.getJSONObject(i); 

      String name = c.getString("umeta_id"); 
      String email = c.getString("user_id"); 
      String mobile = c.getString("meta_value"); 


      HashMap<String, String> contact = new HashMap<>(); 

      contact.put("name", name); 
      contact.put("email", email); 
      contact.put("mobile", mobile); 

      // adding contact to contact list 
      contactList.add(contact); 
     } 
    } catch (final JSONException e) { 
     Log.e(TAG, "Json parsing error: " + e.getMessage()); 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       Toast.makeText(getApplicationContext(), 
         "Json parsing error: " + e.getMessage(), 
         Toast.LENGTH_LONG) 
         .show(); 
      } 
     }); 

    } 
} else { 
    Log.e(TAG, "Couldn't get json from server."); 
    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      Toast.makeText(getApplicationContext(), 
        "Couldn't get json from server. Check LogCat for possible errors!", 
        Toast.LENGTH_LONG) 
        .show(); 
     } 
    }); 

} 

JSONは
私は、オンラインツールを使用して、それを確認し、有効であるしかし、私は自分のアプリケーション内のデータが欲しいです。
私は間違っていますか?

答えて

1

最初に。jsonObj.getJSONArray(""); ...キーcanno tは空の文字列です。それは[文字ではなく{で始まるので、*

あなたの全体の応答がJSONArrayあるので、あなたは、あなたがこれを使用するこの

JSONObject jsonObj = new JSONObject(jsonStr); 

代わりを使用して、他の行を削​​除しないでください

JSONArray contacts = new JSONArray(jsonStr); 

次に、そこからforループを開始します。

関連 - How to parse JSON in Android


*があり、コードと他の問題かもしれないが、あなたはそれをものは

+0

コードは、私がアンドロイドで応答を受け取ることができます罰金実行されているものを述べたが、していませんあなたは私がintrestedでfeildsを取得する方法を私に例を示すことができます –

+0

他にもあなたが持っているものはすべて完璧です。なぜあなたはそうではないと思いますか? –

+0

例外を与えてjsonを解析できないので、親切に再度レビューして質問を編集しました –