Я делаю запрос на freebase и получаю ответ JSON. Реакция имеет следующую структуру:Застрял при разборе ответа JSON на Java-объект в Android
{
"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 объектов ява с использованием 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;
}
}
Кажется, теперь работает, я обновил qestion своим решением на основе вашего ответа. Спасибо. – Alin