У меня есть данные в формате JSON, который передается через REST WebService:Джексон Mapper: Невозможно преобразовать объект JSON в класс Java Singleton
"dimension": {
"@type": "com.example.multi.MultiDimension",
"listId": "tempListId1",
"key": "PERN",
"displayName": "Personal"
}
Теперь многомерном является классом Singleton, то есть имеющий частного конструктора , Так что Джексон не смог найти публичного конструктора и дал ошибку синтаксического анализа.
No suitable constructor found for type [simple type, class com.example.multi.MultiDimension]: can not instantiate from JSON object (need to add/enable type information?)\n at [Source: [email protected]; line: 8, column: 9]
Ну, тогда я добавил общественный конструктор в классе многомерным и, как ожидается, он работал.
Меня беспокоит то, что из класса Singleton я сделал его открытым, является их какой-либо способ, где я могу по-прежнему есть Singleton класс и Джексон Mapper можно сопоставить класс с указанием имени метода т.е. getInstance()
из класса
, как я помню, что вам нужно пустой подрядчик не частная –
Вы можете использовать '@ JsonCreator' на вашем GetInstance)' 'метода (. – dambros
Разве вы не думаете здесь что-то не так? Входящие данные, которые предполагается десериализовать в объект, не должны считываться в одноэлементный. Мне трудно понять разумный вариант использования. Если я хочу, чтобы материал был передан в синглтон, я бы сначала десериализовал это на объект передачи данных, который затем вводится в синглтон, как относящийся к области. – Lmickos