Jeg brukte Alibabas Fastjson til å serialisere og deserialisere objekter, fordi mine opprinnelige json-strenger alle var a, b, c... Slike bokstaver er representert, men jeg serialiserer dem til objekter, og jeg kan ikke definere objekter som slike meningsløse egenskaper. JSONField-annotasjoner brukes her.
@JSONField forskjellen mellom å sette på et felt og get set-metoden
- felt, som spesifiserer både serialiserings- og deserialiseringsoperasjoner
- Sett på get, og spesifiserer operasjonen når du serialiserer
- sett, spesifiserer operasjonen ved deserialisering
Etter at jeg har brukt den, kan den seriell gjøres normalt, men den kan ikke deserialiseres normalt, som vist i figuren nedenfor:
JSON-strengen:
{"a":"shenzhou","b":"Jing Q7UB02","c":110000,"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}
Feilårsaker:
Egenskapene til objekter følger ikke Javas hump-nomenklatur, med alt unntatt det første ordet skrevet med stor forbokstav. For eksempel
int myStudentCount; Variabelen myStudentCount er bare med liten bokstav, og den første bokstaven i ordet etterpå er skrevet med stor forbokstav.
Løsning:
Endre navnet på objektattributtet og regenerer get/set-metoden med følgende kode:
For de riktige attributtene lykkes deserialisering, som vist i følgende bilde:
|