Jeg brugte Alibabas Fastjson til at serialisere og deserialisere objekter, fordi mine oprindelige json-strenge alle var a, b, c... Sådanne bogstaver er repræsenteret, men jeg serialiserer dem til objekter, og jeg kan ikke definere objekter som sådanne meningsløse egenskaber. JSONField-annotationer bruges her.
@JSONField forskellen på at sætte en mark på og get set-metoden
- felt, der specificerer både serialiserings- og deserialiseringsoperationer
- Sæt på get, hvor du specificerer operationen ved serialisering
- set, specificerer operationen ved deserialisering
Efter jeg bruger den, kan den blive serialiseret normalt, men den kan ikke deserialiseres normalt, som vist i figuren nedenfor:
JSON-streng:
{"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}
Fejlårsager:
Objekters egenskaber følger ikke Javas hump-nomenklatur, hvor alt undtagen det første ord er stort begyndt. For eksempel
int myStudentCount; Variablen myStudentCount er kun små bogstaver, og det første bogstav i ordet efter er skrevet med stort bogstav.
Opløsning:
Ændr navnet på objektattributten og genskab get/set-metoden med følgende kode:
For de korrekte attributter lykkes deserialisering, som vist i følgende billede:
|