Am folosit Fastjson de la Alibaba pentru a serializa și deserializa obiecte, pentru că șirurile mele json originale erau toate a, b, c... Astfel de litere sunt reprezentate, dar le serializez în obiecte și nu pot defini obiectele ca proprietăți lipsite de sens. Aici se folosesc adnotări JSONField.
@JSONField diferența dintre a pune pe un câmp și metoda get set
- care specifică atât operațiunile de serializare, cât și cele de deserializare
- Pune pe get, specificând operația la serializare
- set, specifică operația la deserializare
După ce îl folosesc, poate fi serializat normal, dar nu poate fi deseriarizat normal, așa cum se arată în figura de mai jos:
Coarda JSON:
{"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}
Cauzele erorii:
Proprietățile obiectelor nu urmează nomenclatura cocoașului din Java, cu toate cuvintele cu majuscule, cu excepția primului. De exemplu
în myStudentCount; Variabila myStudentCount este doar cu litere mici, iar prima literă a cuvântului este scrisă cu majusculă.
Soluție:
Modificați numele atributului obiect și regenerați metoda get/set cu următorul cod:
Pentru atributele corecte, deseriarizarea reușește, așa cum se arată în imaginea următoare:
|