Erstellen Sie eine benutzerdefinierte Gson Deserializer löst mein Problem deserialisieren. Hier ist der Code:
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(MyTuple.class, new MyTupleDeserializer());
Gson gson = gsonBuilder.create();
MyClass myClass= gson.fromJson(json, MyClass.class);
Hier ist der Code für MyTupleDeserializer Klasse
private class MyTupleDeserializer implements JsonDeserializer<MyTuple> {
@Override
public MyTuple deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
JsonArray tupleValues= json.getAsJsonArray();
MyTuple myTuple= new MyTuple();
myTuple.setVolume(tupleValues.get(0).getAsInt());
myTuple.setPercentFee(tupleValues.get(1).getAsDouble());
return myTuple;
}
}
Ihre Lösung funktioniert nicht, da ich eine Liste von Tupel haben. Jedes Tupel ist ein Array aus zwei Elementen mit zwei verschiedenen Objekttypen (Integer und Double). Irgendeine Idee? – h2nghia
Haben Sie Kompilierungsfehler erhalten? oder die Daten werden nicht richtig deserialisiert? –
Danke für Ihre Hilfe. Ich lerne schließlich, wie man einen kundenspezifischen Gson Deserializer benutzt, um ihn zu analysieren. – h2nghia