2016-03-31 15 views
-2

このJSONオブジェクトをAndroidのListViewに配置しようとしていますが、jsonの不一致に問題があります。JSONオブジェクトAndroidの配置問題

これは私のサーバーのJSONの出力である:私はなくても、両方の患者情報との私のリストを更新するにはどうすればよい

JSONObject object = new JSONObject(result); 

:私のアンドロイドコードで

{"Patient 0": 
{"firstName":"admir","lastName":"andrade","email":"[email protected]"}, 
    "Patient 1": 
{"firstName":"alden","lastName":"andrade","email":"[email protected]"}} 

、私は次のコードを持っています各オブジェクトを一度呼び出す(多くの場合、私はこれを行う方法を知らない)? JSON出力フォームのように、2つの列(姓と名字、電子メールの2つの列)でリストビューを更新するには、さらに何が必要ですか?これを行うより良い方法はありますか?

+0

私はないあなたのことを理解しています..あなたの正確な問題は何かを教えてください。 –

+0

GSONライブラリを使用してjsonをArrayListに変換します。 – Amy

+0

jsonライブラリを意味しますか? @Amy – Aboogie

答えて

1

これは正常に動作し、ここで

私がテストした完全なコードです

JSONObject jObject = new JSONObject(result.trim()); 
Iterator<?> keys = jObject.keys(); 

while(keys.hasNext()) { 
    String key = (String)keys.next(); 
    if (jObject.get(key) instanceof JSONObject) { 

     String firstName = ((JSONObject) jObject.get(key)).getString("firstName"); 
     String lastName = ((JSONObject) jObject.get(key)).getString("lastName"); 
     String email = ((JSONObject) jObject.get(key)).getString("email"); 

     Log.d("jsondata","Firstname = "+firstName+"\nlastname = "+lastName+"\nemail = "+email); 

    } 
} 

更新、

String result = "{\"Patient 0\":{\"firstName\":\"admir\",\"lastName\":\"andrade\",\"email\":\"[email protected]\"},\"Patient 1\":{\"firstName\":\"alden\",\"lastName\":\"andrade\",\"email\":\"[email protected]\"}}"; 

    JSONObject jObject = null; 
    try { 
     jObject = new JSONObject(result.trim()); 
     Iterator<?> keys = jObject.keys(); 

     while(keys.hasNext()) { 
      String key = (String)keys.next(); 
      if (jObject.get(key) instanceof JSONObject) { 

       String firstName = ((JSONObject) jObject.get(key)).getString("firstName"); 
       String lastName = ((JSONObject) jObject.get(key)).getString("lastName"); 
       String email = ((JSONObject) jObject.get(key)).getString("email"); 
       Log.d("jsondata","Firstname = "+firstName+"\nlastname = "+lastName+"\nemail = "+email); 
      } 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

これは私のためには機能しません。私はこのエラーが発生します:org.json.JSONException:0の文字の入力の終わり;これもorg.json.JSONTokener.syntaxError(JSONTokener.java:449)プラスmore – Aboogie

+0

で空白の応答が返ってきている可能性があります。もう一度やり直して、jsonデータを受け取ったことを確認してください。 –

+0

awesome Thanks @ Shree Krishna – Aboogie

0

あなたはこれを試すことができます。..

 String result ="{\"Patient 0\":\n" + 
      "{\"firstName\":\"admir\",\"lastName\":\"andrade\",\"email\":\"[email protected]\"},\n" + 
      " \"Patient 1\":\n" + 
      "{\"firstName\":\"alden\",\"lastName\":\"andrade\",\"email\":\"[email protected]\"}}"; 

    JSONObject data = null; 
    try { 
     data = new JSONObject(""+result); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    List<String> FName = new ArrayList<String>(); 

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

     try { 
      JSONObject innerData = data.getJSONObject("Patient "+i); 

      FName .add(innerData.getString("firstName")); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 
関連する問題