Ich versuche, ein JSON mit allen Feldern in Kleinbuchstaben zu deserialisieren. Das Problem ist: mein POJO-Objekt hat Attribute, die als camelcase gesetzt sind, und wenn ich versuche, mit gson.fromJson zu deserialisieren, werden meine camelcase-Attribute nicht gesetzt.Gson deserialize Kleinbuchstaben JSON Camelcase Klassenobjekt
Beispiel JSON:
[
{
"idpojo": 1,
"namepojo": "test"
}
]
POJO Klasse:
public class Pojo {
private Integer idPojo;
private String namePojo;
//constructors, getters and setters
}
Deserialisierung Code:
List<T> objects = new ArrayList<>();
// At this point I only have an variable with a reference to a classe. Let's assume it is in fact a reference to Pojo class
Class VARIABLE_WITH_REFERENCE_TO_A_CLASS = Pojo.class;
Class pojoReference = VARIABLE_WITH_REFERENCE_TO_A_CLASS;
String json = EXAMPLE_JSON_HERE;
JSONArray jsonArray = new JSONArray(json);
int len = jsonArray.length();
for (int i = 0; i < len; i++) {
objects.add((T) new Gson().fromJson(jsonArray.get(i).toString(), pojoReference)));
}
Der Grund, warum ich bin Deserialisieren die JSON zu einer Liste von einer generischen Klasse statt Eine Liste von Pojo-Klassen ist, weil ich an diesem Punkt meines Codes nicht weiß, welche Klasse ich meinen Col erstellen soll Lektion.
Dieser Code funktioniert einwandfrei. Das Problem ist: Die Camelcase-Attribute aus der Pojo-Klasse werden nach der Deserialisierung nicht gesetzt.
Was ich bis jetzt versucht habe, ist die Annotation @SerializedName auf den Feldern, und auch das Erstellen von benutzerdefinierten Deserializern, aber nicht den Trick für mich, weil ich wirklich keinen Code für Deserialisierung von schreiben will/kann Objekte.
Frage:
Verwendung generisch, wie kann ich ein JSON-Objekt mit Klein atributes zu einer Java-Klasse (wie Pojo.class) mit Camelcase Attributen deserialisieren?
Danke für den Eingang @Tyler, aber ich sagte, das ist keine Option für mich. – Bonifacio