2012-03-20 26 views
6

複雑なJsonに含まれるすべての単一パラメータをStringとしてアクセスする必要があります。たとえばString people=...; String idPeople=...;ためAndroidで入れ子になったjsonオブジェクトと複数のjsonオブジェクトで入れ子になったjson配列を持つjsonから文字列を取得

など

私は同様の質問を検索しようとしたとして、私は、JSONTokenersを使用しようとしました、そしてシンプルなJSONのために私は問題を持っていないが、私は取得する方法がわかりません

{"id":1,"error":null,"result": 
    {"nPeople":2, 
    "people":[ 
      {"namePeople":"Inca", 
      "power":"1235", 
      "location":"asdfghjja", 
      "idPeople":189, 
      "mainItems":"brownGem", 
      "verified":false, 
      "description":"Lorem impsum bla bla", 
      "linkAvatar":"avatar_12.jpg", 
      "longitude":16.2434263, 
      "latitude":89.355118}, 

      {"namePeople":"Maya", 
      "power":"1235", 
      "location":"hcjkjhljhl", 
      "idPeople":119, 
      "mainItems":"greenstone", 
      "verified":false, 
      "description":"Lorem impsum bla bla", 
      "linkAvatar":"avatar_6.jpg", 
      "longitude":16.2434263, 
      "latitude":89.3551185}] 
    } 
} 

NB配列人々内のオブジェクトの数は常に2ではありません...そして5月には、我々はあなたがmyJsonStringを投稿JSONを呼び出す場合は4人以上の人が

答えて

19

私は試していません。 しかし、私はそれが動作するかもしれないと思います。

JSONObject obj = new JSONObject(jsonString); 
    String id = obj.getString("id"); 
    String error = obj.getString("error"); 
    JSONObject result = obj.getJSONObject("result"); 
    int nPeople = result.getInt("nPeople"); 
    JSONArray people = result.getJSONArray("people"); 
    for(int i = 0 ; i < people.length() ; i++){ 
     JSONObject p = (JSONObject)people.get(i); 
     String namePeople = p.getString("namePeople"); 
     ... 
    } 
+0

これは私を夢中にしていました。私は目的のCの後にAndroidデベロッパーで手を振っていて、これを理解できませんでした。ありがとう! –

+0

この1つの答えにはさらに多くの質問に対する回答があります。 Thanx – Sayka

2

オブジェクトが含まれ、

:正しくこのからのパラメータ
JSonObject obj = new JSonObject(myJsonString); 
JSonObject result = obj.getJSONObject("result"); 
JSonArray people = result.getJSONArray("people"); 
int numOfPeople = result.getInt("nPeople"); 
関連する問題