Ich habe Alibabas Fastjson verwendet, um Objekte zu serialisieren und zu deserialisieren, weil meine ursprünglichen JSON-Strings alle a, b, c... Solche Buchstaben sind dargestellt, aber ich serialisiere sie zu Objekten und kann Objekte nicht als solche bedeutungslosen Eigenschaften definieren. JSONField-Anmerkungen werden hier verwendet.
@JSONField der Unterschied zwischen dem Setzen auf ein Feld und der Get-Set-Methode
- Feld, das sowohl Serialisierungs- als auch Deserialisierungsoperationen spezifiziert
- Auf Get setzen, wobei die Operation beim Serialisieren angegeben wird
- set, spezifiziert die Operation beim Deserialisieren
Nachdem ich es benutzt habe, kann es normal serialisiert werden, aber es kann nicht normal deserialisiert werden, wie in der Abbildung unten gezeigt:
JSON-String:
{"a":"shenzhou","b":"Jing Q7UB02","c":11000,"d":"2019-01-08T17:07:04+08:00","e":120.775085,"f":30.13825,"g":77,"h":171,"i":0,"j":4951,"k":2,"l":0,"m":0,"n":4,"o":"0","p" :1}
Fehlerursachen:
Die Eigenschaften von Objekten folgen nicht Javas Hump-Nomenklatur, wobei alle bis auf das erste Wort großgeschrieben werden. Zum Beispiel
int myStudentCount; Die Variable myStudentCount besteht komplett aus Kleinbuchstaben, und der erste Buchstabe des Wortes danach wird großgeschrieben.
Lösung:
Ändern Sie den Namen des Objektattributs und generieren Sie die get/set-Methode mit folgendem Code:
Für die korrekten Attribute gelingt die Deserialisierung, wie im folgenden Bild gezeigt:
|