Usei o Fastjson do Alibaba para serializar e desserializar objetos, porque minhas strings json originais eram todas a, b, c... Tais letras são representadas, mas eu as serializo em objetos, e não posso definir objetos como propriedades sem sentido. Aqui são usadas anotações JSONField.
@JSONField a diferença entre colocar em um campo e o método get set
- campo, especificando tanto operações de serialização quanto de desserialização
- Coloque em get, especificando a operação ao serializar
- set, especifica a operação ao desserializar
Depois de usá-lo, ele pode ser serializado normalmente, mas não pode ser desserializado normalmente, como mostrado na figura abaixo:
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}
Causas do erro:
As propriedades dos objetos não seguem a nomenclatura de corcunda de Java, com todas as palavras maiúsculas, exceto a primeira. Por exemplo
int myStudentCount; A variável myStudentCount é toda minúscula, e a primeira letra da palavra depois de ser capitalizada.
Solução:
Modificar o nome do atributo objeto e regenerar o método get/set com o seguinte código:
Para os atributos corretos, a desserialização é bem-sucedida, como mostrado na imagem a seguir:
|