2016-12-19 10 views
-2

私は、このフォームでは、サーバからの応答を受信します:JSONオブジェクト解析オブジェクトアンドロイド

{"data":[{"id":22,"name":null,"uuid":"ewfnwofnonf"},{"id":44,"name":null,"uuid":"309r0ddpaso"}]} 

私は何をしたいのか、私のデバイスは、デバイスのUUIDをチェックしての「ID」を取得することですデバイス。 UUIDはここから来る:

String deviceId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 

これは私が試したものです:

final String deviceId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 
VolleyGetHeaders.getInstance(ProfileSetting.this, finalToken); 
VolleyGetHeaders.getInstance().VolleyGETHeaders(domain, "device", new CustomListener<String>() { 
@Override 
public void getResult(String result) { 
    JSONObject obj = null; 
    try { 
      obj = new JSONObject(result); 
      if (obj.getString("uuid") == deviceId){ 

      String userID = obj.getString("id"); 

      } catch (JSONException e) { 
      e.printStackTrace(); 
      } 
      }}); 

サーバーが正常にUUIDの値を私に結果を与えたが、私はこの次のエラーがあります。

org.json.JSONException: No value for uuid 

「uuid」と一致するjsonレスポンスに対応する「id」を取得する別の方法もありますか?あなたは間違った方法でそれを解析している

+3

あなたの最初のタグの開始を動作するはずveriable結果であなたのresponceあたりとして。 _uuid_ – Piyush

+0

次のいずれかの回答に同意するか、直面しているエラーを投稿する必要があります。将来、他の開発者がコミュニティに加わることをサポートする回答手段を受け入れる。これもあなたを助けるでしょう。親切に私が上で言ったことのいずれかを行う。それはあなたにもあなたにいくつかのバッジを与えるでしょう。 – Noorul

答えて

0

は、

final String deviceId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 
    VolleyGetHeaders.getInstance(ProfileSetting.this, finalToken); 
    VolleyGetHeaders.getInstance().VolleyGETHeaders(domain, "device", new CustomListener<String>() { 
     @Override 
     public void getResult(String result) { 
      JSONObject obj = null; 
      try { 
       obj = new JSONObject(result); 
       JSONArray arrData = obj.getJsonArray("data"); 

       for (int i = 0; i < arrData.length; i++) { 
        JSONObject jobj=arrData.getJSONObject(i); 
        if (jobj.getString("uuid") == deviceId) { 
         String userID = obj.getString("id"); 

        } 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
+0

あなたのすばやい返事をありがとう、すべての答えが似ているので、私はあなたが最も速く答えたので、答えとして多くのあなたになります。ありがとうございました! – JerryKo

0

あなたはdatauuid含まれているだけの目的ではないことを理解する必要があり、次のことを試してみてください。これは実際にはオブジェクトの配列であり、各オブジェクトにはデータメンバーとしてuuidが含まれています。そのため、あなたが直接アクセスしようとするとuuidの価値を得ることができないのです。マッチするuuidを持つ配列からオブジェクトを見つけたら、非常に簡単にidを得ることができます。これを試してみてください:

JSONObject obj = null; 
String userID = null; 
try { 
     obj = new JSONObject(result); 
     JSONArray arrData = obj.getJsonArray("data"); 

     for (int i = 0; i < arrData.length; i++) { 
      JSONObject jobj=arrData.getJSONObject(i); 
      if (jobj.getString("uuid") == deviceId) { 
       userID = obj.getString("id"); 
       break; 

      } 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

だからループブレークは、あなたがUUIDがDEVICEIDと一致している(ユーザIDとして)オブジェクトのIDを持つことになりますとき

0

試してください:あなたが持っている

JSONObject obj = null; 
    try { 
      obj = new JSONObject(result); 
      JSONArray arrData = obj.getJsonArray("data"); 

      for (int i = 0; i < arrData.length; i++) { 
       JSONObject jobj=arrData.getJSONObject(i); 
       if (jobj.has("id")) { 
        String userID = obj.getString("id"); 
       } 
       if (jobj.has("uuid")) { 
        String userID = obj.getString("uuid"); 
       } 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
0

最初に配列を取得し、次にjson配列を解析して、コードを実行します。これがあなたに役立つことを願っています。

private void parseJson(String s){ 
    try { 
     JSONObject jsonObject = new JSONObject(s); 
     JSONArray jsonArray = jsonObject.getJSONArray("data"); 
     if(jsonArray.length()>0){ 
      for(int i =0;i<jsonArray.length();i++){ 
       JSONObject object = jsonArray.getJSONObject(i); 
       Log.d("uuid:",object.getString("uuid")); 
       Log.d("id",object.getString("id")); 
      } 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
0
  1. 以下のコードを確認してください10 ..まだ
  2. あなたは答えが私にウルフェッチデータが
  3. {}オブジェクト、[]配列 は、以下のコードをチェックし4.pleaseどこからURLを与えることになっていない場合それは_data_という名前JSONObjectと

    JSONObject obj = null; 
        try { 
         obj = new JSONObject(result); 
         JSONArray jsonArray=obj.getJSONArray("data"); 
         for(int i=0;i<jsonArray.length();i++){ 
          JSONObject jo=jsonArray.getJSONObject(i); 
          String UUID=jo.getString("uuid"); 
          if (jobj.getString("UUID") == deviceId) { 
           String userID = jo.getString("id"); 
          } 
         } 
    
    } catch (JSONException e) { 
        e.printStackTrace(); 
    }