Użyłem Fastjson Alibaby do serializacji i deserializacji obiektów, ponieważ moje oryginalne ciągi json to były a, b, c... Takie litery są reprezentowane, ale serializuję je w obiekty i nie potrafię zdefiniować obiektów jako takich bezsensownych właściwości. Tutaj używa się adnotacji JSONField.
@JSONField różnica między putting on a get-set metodą
- Field, określając zarówno operacje serializacji, jak i deserializacji
- Postaw na get, określając operację podczas serializacji
- set, określa operację podczas deserializacji
Po użyciu można go normalnie serializować, ale nie można go normalnie deserializować, jak pokazano na poniższym rysunku:
Ciąg JSON:
{"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}
Błąd powoduje:
Właściwości obiektów nie podążają za nazewnictwem garbów Javy, gdzie wszystkie słowa oprócz pierwszego słowa są pisane wielką literą. Na przykład
int myStudentCount; Zmienna myStudentCount jest zapisana małymi literami, a pierwsza litera słowa po niej jest zapisana wielką literą.
Rozwiązanie:
Zmodyfikuj nazwę atrybutu obiektu i wygeneruj metodę get/set za pomocą następującego kodu:
Dla poprawnych atrybutów deserializacja się udaje, jak pokazano na poniższym obrazie:
|