0

次のコードを使用して、単純なJSON文字列を解析できます

HttpClient client = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet(
            URL.toString() );




    try {
        HttpResponse response = client.execute(httpGet);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if (statusCode == 200) {
            HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(content));

            finalResult.setText("Done") ;

            Result = reader.readLine();


        } else {
             Result = "error";
        }
    } catch (ClientProtocolException e) {
         Result = "error";
        e.printStackTrace();
    } catch (IOException e) {
         Result = "error";
        e.printStackTrace();
    }

しかし今私は次のJSON文字列を持っています

[{"Name":"Ali" ,"Age":35,"Address":"cccccccccccc"} ,{"Name":"Ali1" ,"Age":351,"Address":"cccccccccccc1"} ,
{"Name":"Ali2" ,"Age":352,"Address":"cccccccccccc2"}
]

とクラスはそれを表します

package com.appnetics;

import android.R.string;

public class Encounter {
    public string Name;
    public string Address;
    public int Age;
}

このJSONをループして、に変換したいlist<Encounter>

それを行う方法のアイデア

4

2 に答える 2

4

もう 1 つの簡単な方法は、Gson 別の libを使用して実装を容易にすることです。これは、Android プラットフォームに付属する org.json 実装と比較して使いやすいです。

ドメインオブジェクトに問題がない場合。次に、jsonを解析するコードは2行しかありません...のように

Gson gson = new Gson();
YourDomainObject obj2 = (YourDomainObject) gson.fromJson(jsonString,
   YourDomainObject.class);

また、コレクション n もすべて処理できます。

于 2012-06-10T08:31:33.620 に答える
3

org.json名前空間を使用します。具体的な例として、次のことができます。

ArrayList<Encounter> encounters=new ArrayList<Encounter>();
JSONArray array=new JSONArray(Result);
for(int i=0;i<array.length();i++){
    JSONObject elem=(JSONObject)array.get(i);
    Encounter encounter=new Encounter();
    Encounter.Name=elem.getString("Name");
    Encounter.Age=elem.getInt("Age");
    Encounter.Address=elem.getString("Address");
    encounters.add(encounter);
}
于 2012-06-10T08:24:51.263 に答える