どのようにしてこの複合JSONを逆シリアル化できますか。 すべてのオブジェクトにアクセスして読み込みたいです。 たとえば、インデックス付けによるSelectionIdおよびAdditionalPriceInfoフィールド。私はJSONを分割するとgsonによる複合JSON逆シリアル化Java
Gson gson2 = new Gson();
AirJson airJson = gson2.fromJson(airFullResult3, AirJson.class);
Itineraries itineraries = gson2.fromJson(airFullResult3, Itineraries.class);
Result result = gson2.fromJson(airFullResult3, Result.class);
//Having null instead SFO
System.out.println(result.getSearchDestinationAirportCode());
//Having null
System.out.println(itineraries.getAdditionalPriceInfo());
:私が望むすべてにアクセスするために、これまで> d51d38c9-6e51-473c-b843-f24fef632f89
{
"Status": 0,
"Message": "",
"Result": {
"HasMore": "False",
"Itineraries": [
{
"SelectionId": "d51d38c9-6e51-473c-b843-f24fef632f89",
"AdditionalPriceInfo": null,
"Trips": [
{
"TotalTravelTime": "02:00:00"
}
]
},
{
"SelectionId": "ff44d76a-a4c8-4aff-9f9d-6db4e1f3092c",
"AdditionalPriceInfo": null,
"Trips": [
{
"TotalTravelTime": "01:23:00"
}
]
}
],
"SearchOriginCityText": "Long Beach",
"SearchOriginAirportCode": "LGB",
"SearchDestinationCityText": "SFO",
"SearchDestinationAirportCode": "SFO"
}
}
私のコード - のget(0).getSelectionId()私が望む値にアクセスすることができます。
{
"Itineraries": [{
"SelectionId": "d51d38c9-6e51-473c-b843-f24fef632f89",
"AdditionalPriceInfo": null
}, {
"SelectionId": "dda40b80-d8e4-4b76-9f78-83297b52afe9",
"AdditionalPriceInfo": null
}]
}
成功したコードと私は値にアクセスします。
あなたを表し子オブジェクトのカップルと一つのオブジェクトを構築する必要がありJsonParser parser = new JsonParser();
JsonObject rootObject = parser.parse(airFullResult).getAsJsonObject();
JsonElement projectElement = rootObject.get("Itineraries");
Type listofObject = new TypeToken<List<Itineraries>>(){}.getType();
List<Itineraries> itiList = gson2.fromJson(projectElement, listofObject);
//Having d51d38c9-6e51-473c-b843-f24fef632f89 as a result
//which is great
System.out.println(itiList.get(0).getSelectionId());
私が最初に割り当てられていないJSONで同じコードを使用すると、動作しないと、エラー
この構造を反映するPOJOを構築するのがよいでしょう。複雑さはここでかなり主観的です。 – rmlan
POJOをビルドしました。すべてのクラスは準備ができています。私はオブジェクトの配列を呼び出すことについて混乱しています。私は結果としてnullを持っています。 – bkm
コードはあなたを助けるのに私たちにとって有益かもしれないと思いませんか? – rmlan