Я використовував Fastjson від Alibaba для серіалізації та десеріалізації об'єктів, бо мої оригінальні json-рядки були всі a, b, c... Такі літери представлені, але я серіалізую їх у об'єкти, і не можу визначити об'єкти як такі беззмістовні властивості. Тут використовуються анотації JSONField.
@JSONField різниця між появою на полі та методом гет-сету
- поле, що визначає як операції серіалізації, так і десеріалізації
- Поставте get, що вказує операцію при серіалізації
- set, визначає операцію при десеріалізації
Після використання його можна серіалізувати нормально, але не можна десеріалізувати нормально, як показано на рисунку нижче:
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}
Причини помилок:
Властивості об'єктів не відповідають яванській номенклатурі горба, оскільки всі, крім першого слова, пишуться з великої літери. Наприклад
int myStudentCount; Змінна myStudentCount пише малу літеру, а перша літера слова після нього пишеться з великої літери.
Рішення:
Змініть назву атрибута об'єкта та перегенеруйте метод get/set за допомогою наступного коду:
Для правильних атрибутів десеріалізація вдається, як показано на наступному зображенні:
|