Uporabil sem Alibabin Fastjson za serializacijo in deserializacijo objektov, ker so bili moji prvotni json nizi vsi a, b, c... Takšne črke so predstavljene, vendar jih serializiram v objekte in ne morem definirati objektov kot takšnih brezsmiselnih lastnosti. JSONField anotacije so tukaj uporabljene.
@JSONField razlika med postavitvijo na polje in metodo get set
- polju, ki določa tako operacije serializacije kot deserializacije
- Postavi na get, s čimer se operacija določi pri serializiranju
- set, določa operacijo pri deserializaciji
Ko ga uporabim, ga lahko serializiram normalno, vendar ga ni mogoče normalno deserializirati, kot je prikazano na spodnji sliki:
JSON niz:
{"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}
Napaka povzroča:
Lastnosti objektov ne sledijo Javajevi nomenklaturi grba, kjer so vse besede razen prve z veliko začetnico. Na primer
int myStudentCount; Spremenljivka myStudentCount je v celoti z malimi črkami, prva črka besede pa je po njej napisana z veliko začetnico.
Rešitev:
Spremenite ime atributa objekta in ponovno generirajte metodo get/set z naslednjo kodo:
Za pravilne atribute uspe deserializacija, kot je prikazano na naslednji sliki:
|