Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 18884|Atsakyti: 1

[Šaltinis] Fastjson JSONField deserialization netinkamas sprendimas

[Kopijuoti nuorodą]
Paskelbta 2019-01-11 10:51:31 | | | |
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:







Ankstesnis:Darbo vietos elektroninės knygos
Kitą:PFD formatas taip pat maišomas su kai kuriomis kitomis knygomis
 Savininkas| Paskelbta 2019-01-14 16:29:58 |
Aš atsisakiau fastjson ir perėjau prie Jackson, ir aš susidūriau su Alibaba atvirojo kodo.
Štai kaip juo naudotis:

pop.xml



JAVA objektas JSON [JSON serializacija]



JSON į Java klasės [JSON deserializacija]



Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com