J’ai utilisé le Fastjson d’Alibaba pour sérialiser et désérialiser des objets, car mes chaînes json originales étaient toutes a, b, c... De telles lettres sont représentées, mais je les sérialise en objets, et je ne peux pas définir les objets comme de telles propriétés dénuées de sens. Des annotations JSONField sont utilisées ici.
@JSONField la différence entre mettre sur un champ et la méthode get set
- champ, spécifiant à la fois les opérations de sérialisation et de désérialisation
- Mets sur get, en spécifiant l’opération lors de la sérialisation
- set, spécifie l’opération lors de la désérialisation
Après l’avoir utilisé, il peut être sérialisé normalement, mais ne peut pas être désérialisé normalement, comme montré dans la figure ci-dessous :
Json String :
{"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}
Causes d’erreur :
Les propriétés des objets ne suivent pas la nomenclature bosse de Java, tous les mots étant majusculés sauf le premier. Par exemple
dans myStudentCount ; La variable myStudentCount est entièrement en minuscule, et la première lettre du mot après avoir été écrite en majuscule.
Solution:
Modifiez le nom de l’attribut objet et régénérez la méthode get/set avec le code suivant :
Pour les attributs corrects, la désérialisation réussit, comme montré sur l’image suivante :
|