JSONArrayをパースする方法を見つけるのに苦労しています。 それは次のようなものです。
[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...]
JSONが違う書き方をしていれば(つまり、オブジェクトの配列ではなく、jsonオブジェクトを返していれば)、パースする方法はわかっています。 しかし、それは私が持っているすべてであり、それに従わなければなりません。
*EDIT: これは有効なjsonです。このjsonを使ってiPhoneアプリを作ったのですが、今度はAndroid用にしなければならず、それがうまくいきません。 たくさんの例が出ていますが、すべてJSONObject関連です。私はJSONArrayのための何かが必要です。
誰かヒントやチュートリアル、例を教えてくれませんか?
よろしくお願いします。
JsonArrayを解析するには、以下のスニペットを使用します。
JSONArray jsonarray = new JSONArray(jsonStr);
for (int i = 0; i < jsonarray.length(); i++) {
JSONObject jsonobject = jsonarray.getJSONObject(i);
String name = jsonobject.getString("name");
String url = jsonobject.getString("url");
}
お役に立てれば幸いです。
オブジェクトを格納するクラスを作成します。
public class Person{
private String name;
private String url;
//Get & Set methods for each field
}
次に以下のようにデシリアライズします。
Gson gson = new Gson();
Person[] person = gson.fromJson(input, Person[].class); //input is your String
参考記事: http://blog.patrickbaumann.com/2011/11/gson-array-deserialization/
@Stebra この例を見てください。これはあなたの役に立つかもしれません。
public class CustomerInfo
{
@SerializedName("customerid")
public String customerid;
@SerializedName("picture")
public String picture;
@SerializedName("location")
public String location;
public CustomerInfo()
{}
}
そして、結果が出たら;以下のようにパースします。
List<CustomerInfo> customers = null;
customers = (List<CustomerInfo>)gson.fromJson(result, new TypeToken<List<CustomerInfo>>() {}.getType());