Kasutasin Alibaba Fastjsoni objektide serialiseerimiseks ja deserialiseerimiseks, sest minu algsed json-stringid olid kõik a, b, c... Sellised tähed on esindatud, kuid ma serialiseerin need objektideks ega saa objekte defineerida kui tähendusetuid omadusi. JSONField annotatsioone kasutatakse siin.
@JSONField erinevus väljaku paigaldamise ja "get set" meetodi vahel
- välja, määratledes nii serialiseerimise kui ka deserialiseerimise operatsioonid
- Pane get peale, määrates operatsiooni seriaalimisel
- set, määrab operatsiooni deserialiseerimisel
Pärast kasutamist saab seda tavapäraselt serialiseerida, kuid seda ei saa tavapäraselt deserialiseerida, nagu alloleval joonisel näidatud:
JSON string:
{"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}
Viga põhjustab:
Objektide omadused ei järgi Java kühmunimetust, kus kõik peale esimese sõna on suurtähtedega. Näiteks
int myStudentCount; Muutuja myStudentCount on kõik väiketähtedega ning sõna esimene täht pärast seda on suurtähtedega.
Lahus:
Muuda objekti atribuudi nime ja genereeri get/set meetod uuesti järgmise koodiga:
Õigete atribuutide puhul õnnestub deserialiseerimine, nagu näitab järgmine pilt:
|