Ich habe ein JSON-Objekt, das primitive Felder wie int und string sowie Datum field und time-Feld (auch als String) enthält. Examle meiner JSON:Implementierung benutzerdefinierter Deserializer in Gson mit einigen Funktionen des Standard-Deserializers
{
"auditorium":"506",
"beginLesson":"10:30",
"date":"2016.09.12",
"dayOfWeekString":"Monday",
"discipline":"Math",
"endLesson":"11:10",
"kindOfWork":"Lesson",
"lecturer":"John Smith"
}
I Gson lib verwenden, und ich bin die Umsetzung kundenspezifische Deserializer, weil ich will "beginLesson" und "endLesson" Felder bekommen nicht als String, sondern als Localtime (Ich verwende JodaTime lib). Also erhalte ich diese Felder und wandle sie in LocalTime um, aber ich möchte, dass andere Felder wie normal deserialisiert werden (wenn ich einfach von der Methode json() schreibe, wird jedes Feld in meiner Klasse in json auf denselben Wert gesetzt). Gibt es eine einfache Möglichkeit, diese Felder automatisch zu deserialisieren? Oder der einzige Weg, ich habe - ist viele Zeilen wie
MyClass.auditorium = json.get("auditorium"); MyClass.kindOfWork = json.get("kindOfWork");
Versuchen Sie hier prüfen. http://stackoverflow.com/questions/9296427/gson-deserialization-trying-to-parse-a-json-to-an-object Ich bin nicht vertraut mit Gson, Jackson ist meine JSON-Bibliothek der Wahl. Aber ich bin sicher, dass es eine Art von Deserialisierung direkt zu einer Klasse gibt, indem Sie das Klassenobjekt übergeben. Jackson verwendet Anmerkungen, um Felder für die Serialisierung zu markieren. Also im Wesentlichen sagen Sie etwas wie @JsonProperty ("beginLesson") private LocalTime beginLessonLocalTime_; –