2017-11-18 17 views
0

私はアンドロイドアプリとWebサービスを持っています。私はいくつかのレジスタを編集したいとき、私はデータベースからレコード全体を取得し、すべてのフィールドをEdit Textに入れなければなりません。アンドロイドスタジオでJSONオブジェクトのフィールドを取得する方法は?

Webサービスは、Androidアプリ

[{"id":"6","0":"6","tipo":"No Oxidado","1":"No Oxidado","fecha":"2015-02-02","2":"2015-02-02","ubicacion":"-1.555505, -6.6171","3":"-1.555505, -6.6171","persona":"Laura Morales","4":"Laura Morales","fotografia":"-","5":"-"}] 

に私にこれを返すと私は独立した編集テキスト内のすべてのフィールドを入れてくださいどのようにこのJSON文字列

を持っている「結果」という変数を持っています私のAndroidアプリでは? "結果が" 私のJSON文字列である

txtid.setText(result[0]); 
txtType.setText(result[1]); 
txtDate.setText(result[2]); 
txtLocation.setText(result[3]); 
txtPerson.setText(result[4]); 

:よう

何か。

答えて

0

以下のようなあなたの入力オブジェクトでモデルを作成し、最初にGSON

を呼ぶアンドロイドモデルにJSONオブジェクトを変換するためのライブラリがあります:

class InputModel { 
    String id; 
    String 0; //it's better to change this object name 
    String tipo; 
... 
} 

次、あなたがあなたのをバインドするGsonを使用することができますが、あなたのモデルへの入力。

InputModel mInput = new Gson().fromJson(data); 

PS1:データが

PS2ご入力された文字列である:あなたの入力の名前は、あなたの入力した名前の異なる場合が欲しい場合は、次のようなアノテーションを使用することができ、それはこのようなものでなければなりません。

@SerializedName("id") 
String productId; 
0

下記のコードを試してください。あなたは、アレイ内の複数のJSONオブジェクトを持っている場合

String response = "[{"id":"6","0":"6","tipo":"No Oxidado","1":"No Oxidado","fecha":"2015-02-02","2":"2015-02-02","ubicacion":"-1.555505, -6.6171","3":"-1.555505, -6.6171","persona":"Laura Morales","4":"Laura Morales","fotografia":"-","5":"-"}]" 

try { 
     JSONArray jsonArray = new JSONArray(response); 
     for (int i =0; i<jsonArray.length();i++){ 
      JSONObject jsonObject = jsonArray.getJSONObject(i); 
      txtid.setText(jsonObject.getString("0")); 
      txtType.setText(jsonObject.getString("1")); 
      txtDate.setText(jsonObject.getString("2")); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

そして、あなたは、アレイ内の1つのオブジェクトのみを持っているならば、必要がループの使用を直接この方法で使用しないように

try { 
     JSONArray jsonArray = new JSONArray(response); 

      JSONObject jsonObject = jsonArray.getJSONObject(0); 
      txtid.setText(jsonObject.getString("0")); 
      txtType.setText(jsonObject.getString("1")); 
      txtDate.setText(jsonObject.getString("2")); 

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