Я делаю запрос на запрос freebase и получаю ответ JSON. Ответ имеет следующую структуру:
{
"code": "/api/status/ok",
"result": [
{
"/common/topic/image": [{
"guid": "#9202a8c04000641f8000000004b67f6d"
}],
"/people/person/profession": [{
"name": "Critic"
}],
"id": "/en/michael_jackson_1942",
"name": "Michael Jackson",
"type": "/people/person"
},
{
"/common/topic/image": [{
"guid": "#9202a8c04000641f800000001b90fdea"
}],
"/people/person/profession": [{
"name": "Actor"
}],
"id": "/en/michael_jackson_1970",
"name": "Michael Jackson",
"type": "/people/person"
}
],
"status": "200 OK",
"transaction_id": "cache;cache03.p01.sjc1:8101;2012-01-16T18:28:36Z;0055"
}
Мне нужно проанализировать этот ответ в ArrayList объектов Java, используя GSON. Для этого мне нужно создать класс объекта с помощью get / set и сделать его доступным для разбора. Или есть еще один простой способ сделать что-то? Я уже использовал простые строки JSON, но в этом случае я не могу переделать структуру нужного мне класса. В конце концов мне нужно что-то вроде ArrayList<Person>
, где Person
имеет все атрибуты из строки json.
Любая помощь приветствуется. Спасибо.
Окончательное решение, согласно ответу ниже
public class FreebaseResponse {
@SerializedName("code")
public String code;
@SerializedName("result")
public ArrayList<Person> result;
@SerializedName("status")
public String status;
@SerializedName("transaction_id")
public String transaction_id;
}
public class Person {
@SerializedName("/common/topic/image")
public ArrayList<Person.Guid> imageGuid;
@SerializedName("/people/person/profession")
public ArrayList<Person.Profession> profession;
@SerializedName("id")
public String id;
@SerializedName("name")
public String name;
@SerializedName("type")
public String type;
private class Guid
{
@SerializedName("guid")
public String guid;
}
private class Profession
{
@SerializedName("name")
public String name;
}
}