Comment désérialiser ce complexe JSON. Je veux accéder à tous les objets et lire. Par exemple, champs SelectionId et AdditionalPriceInfo par indexation. get (0) .getSelectionId() -> d51d38c9-6e51-473c-b843-f24fef632f89Désérialisation complexe JSON avec gson Java
{
"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"
}
}
Mon code à ce jour pour accéder à tout ce que je veux:
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());
Quand je partage mon JSON , Je peux accéder aux valeurs que je veux.
{
"Itineraries": [{
"SelectionId": "d51d38c9-6e51-473c-b843-f24fef632f89",
"AdditionalPriceInfo": null
}, {
"SelectionId": "dda40b80-d8e4-4b76-9f78-83297b52afe9",
"AdditionalPriceInfo": null
}]
}
Le code et les valeurs d'accès I réussis.
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());
Lorsque j'utilise le même code pour la première JSON non alloué, ne fonctionne pas et ayant java.lang.NullPointerException comme une erreur
Un bon début serait de construire des POJO qui reflètent cette structure. Le complexe est plutôt subjectif ici. – rmlan
J'ai construit POJO. Toutes les classes sont prêtes. Je suis confus au sujet d'appeler des tableaux dans des objets. Je suis nul en conséquence. – bkm
Eh bien, vous ne pensez pas que le code pourrait nous aider? – rmlan