私はfreebaseへのクエリ呼び出しを行っており、JSON応答を受け取ります。応答は次の構造を持ちます:AndroidのJavaオブジェクトに対する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"
}
GSONを使ってJavaオブジェクトのArrayListでこの応答を解析する必要があります。これを行うには、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