JSON の大きな応答を解析するためにGoogle gson-2.2.1ライブラリを使用しています。
構造が異なる可能性がある JSON 応答を解析する必要があります。
最初のケース、応答に複数のチームが含まれる場合:
"Details":{
"Role":"abc",
"Team":[
{
"active":"yes",
"primary":"yes",
"content":"abc"
},
{
"active":"yes",
"primary":"yes",
"content":"xyz"
}
],
2 番目のケース、1 つのチームのみが合格した場合:
"Details":{
"Role":"abc",
"Team":
{
"active":"yes",
"primary":"yes",
"content":"abc"
}
}
解析に使用される基本クラスがあります。
class Details {
public String Role;
public ArrayList<PlayerTeams> Team = new ArrayList<PlayerTeams>();
PlayerTeams Team; // when JsonObject
}
class PlayerTeams {
public String active;
public String primary;
public String content;
}
ArrayList<PlayerTeams>
問題は、それらが 1 つしかなく、JsonObject として返された場合に使用できないことです。
Gson は、JSON 応答の静的な形式を識別できます。「Team」キーがJsonArray
orのインスタンスであるかどうかを確認することで、完全な応答を動的に追跡できますJsonObject
が、そのためのより良い解決策があれば素晴らしいと思います。
編集: 私の応答がより動的な場合..
"Details":{
"Role":"abc",
"Team":
{
"active":"yes",
"primary":"yes",
"content":"abc"
"Test":
{
"key1":"value1",
"key2":"value2",
"key3":"value3"
}
}
}
私の編集された質問では、応答がより動的である間に問題に直面しています..また、または..データが増えるTeam
とオブジェクトが配列する場合があり、単一のデータの場合はオブジェクトが、データがない場合は文字列になることがあるため、本当に嫌がらせを受けています。対応に一貫性がない。Test
JsonArray
JsonObject
Test