Použil som Alibaba Fastjson na serializáciu a deserializáciu objektov, pretože moje pôvodné json reťazce boli všetky a, b, c... Takéto písmená sú reprezentované, ale serializujem ich do objektov a nedokážem definovať objekty ako takéto bezvýznamné vlastnosti. Tu sa používajú anotácie JSONField.
@JSONField rozdiel medzi putting on a get set metódou
- pole, ktoré špecifikuje operácie serializácie aj deserializácie
- Dajte na get, čím sa špecifikuje operácia pri serializácii
- set, špecifikuje operáciu pri deserializácii
Keď ho použijem, dá sa serializovať normálne, ale nedá sa deserializovať normálne, ako je znázornené na obrázku nižšie:
JSON reťazec:
{"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}
Chyba spôsobuje:
Vlastnosti objektov nenasledujú Javaovu nomenklatúru hrbov, pričom všetky okrem prvého slova sú písané s veľkým písmenom. Napríklad
int myStudentCount; Premenná myStudentCount je čistá malými písmenami a prvé písmeno slova po ňom je napísané s veľkými písmenami.
Riešenie:
Upravte názov atribútu objektu a znovu vygenerujte metódu get/set s nasledujúcim kódom:
Pre správne atribúty je deserializácia úspešná, ako je znázornené na nasledujúcom obrázku:
|