JSONArray'i nasıl ayrıştıracağıma dair bir yol bulmakta zorlanıyorum. Şuna benziyor:
[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...]
JSON farklı bir şekilde yazılmış olsaydı nasıl ayrıştıracağımı biliyorum (Başka bir deyişle, bir nesne dizisi yerine json nesnesi döndürseydim). Ama elimdeki tek şey bu ve bununla devam etmek zorundayım.
*EDIT: Geçerli bir json. Bu json'ı kullanarak bir iPhone uygulaması yaptım, şimdi bunu Android için yapmam gerekiyor ve çözemiyorum. Orada çok fazla örnek var, ancak hepsi JSONObject ile ilgili. JSONArray için bir şeye ihtiyacım var.
Lütfen birisi bana bir ipucu, öğretici ya da örnek verebilir mi?
Çok minnettarım!
JsonArray'i ayrıştırmak için aşağıdaki kod parçacığını kullanın.
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");
}
Umarım yardımcı olur.
Nesneleri tutmak için bir sınıf oluşturun.
public class Person{
private String name;
private String url;
//Get & Set methods for each field
}
Ardından aşağıdaki gibi serileştirin:
Gson gson = new Gson();
Person[] person = gson.fromJson(input, Person[].class); //input is your String
Referans Makale: http://blog.patrickbaumann.com/2011/11/gson-array-deserialization/
@Stebra Bu örneğe bakın. Bu size yardımcı olabilir.
public class CustomerInfo
{
@SerializedName("customerid")
public String customerid;
@SerializedName("picture")
public String picture;
@SerializedName("location")
public String location;
public CustomerInfo()
{}
}
Ve sonucu aldığınızda; şu şekilde ayrıştırın
List<CustomerInfo> customers = null;
customers = (List<CustomerInfo>)gson.fromJson(result, new TypeToken<List<CustomerInfo>>() {}.getType());