Aš naudojau Alibaba Fastjson serializuoti ir deserializuoti objektus, nes mano originalios json eilutės buvo visos a, b, c ... Tokios raidės yra vaizduojamos, bet aš jas serijiškai suskirstau į objektus ir negaliu apibrėžti objektų kaip tokių beprasmių savybių. Čia naudojami JSONField komentarai.
@JSONField skirtumas tarp įdėjimo į lauką ir gauti nustatyti metodą
- , nurodant ir serializavimo, ir deserializavimo operacijas
- Įdėkite get, nurodydami operaciją serializuojant
- nustatyti, nurodo operaciją deserializuojant
Po to, kai jį naudoju, jis gali būti įprastai serijinis, bet negali būti deserializuotas įprastai, kaip parodyta paveikslėlyje žemiau:
JSON eilutė:
{"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}
Klaidos priežastys:
Objektų savybės neatitinka Javos kupros nomenklatūros, kai visi, išskyrus pirmąjį žodį, rašomi didžiosiomis raidėmis. Pavyzdžiui
int myStudentCount; Kintamasis myStudentCount yra mažosios raidės, o pirmoji žodžio raidė po jo rašoma didžiąja raide.
Sprendimas:
Pakeiskite objekto atributo pavadinimą ir iš naujo sugeneruokite metodą get/set naudodami šį kodą:
Norint nustatyti teisingus atributus, pavyksta deserializuoti, kaip parodyta šiame paveikslėlyje:
|