Es izmantoju Alibaba Fastjson, lai seriālizētu un deserializētu objektus, jo manas oriģinālās json stīgas bija visas a, b, c ... Šādi burti ir attēloti, bet es tos sērijizēju objektos, un es nevaru definēt objektus kā tādas bezjēdzīgas īpašības. Šeit tiek izmantotas JSONField anotācijas.
@JSONField atšķirība starp lauka ievietošanu un iegūšanas metodi
- , norādot gan serializācijas, gan deserializācijas operācijas
- Ievietojiet get, norādot operāciju serializācijas laikā
- iestatīt, norāda darbību, deserializējot
Pēc tam, kad es to izmantoju, to var normāli serializēt, bet to nevar normāli deserializēt, kā parādīts zemāk redzamajā attēlā:
JSON virkne:
{"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}
Kļūdas cēloņi:
Objektu īpašības neatbilst Java kupra nomenklatūrai, ar visiem, izņemot pirmo vārdu, ar lielo burtu. Piemēram
int myStudentCount; Mainīgais myStudentCount ir mazais burts, un vārda pirmais burts pēc tā tiek rakstīts ar lielo burtu.
Šķīdums:
Modificējiet objekta atribūta nosaukumu un atkārtoti ģenerējiet get/set metodi ar šādu kodu:
Pareizajiem atribūtiem deserializācija ir veiksmīga, kā parādīts šajā attēlā:
|