Я отримую таку помилку при спробі отримати запит JSON та обробити його:
org.codehaus.jackson.map.JsonMappingException: Не знайдено відповідного конструктора для типу [простий тип, клас com.myweb.ApplesDO]: не можна інстанціювати об'єкт JSON (потрібно додати / включити інформацію про тип?)
Ось JSON, який я намагаюся надіслати:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
У Controller у мене є такий підпис методу:
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
AllApplesDO - це обгортка ApplesDO:
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
ЯблукаDO:
public class ApplesDO {
private String apple;
public String getApple() {
return apple;
}
public void setApple(String appl) {
this.apple = apple;
}
public ApplesDO(CustomType custom){
//constructor Code
}
}
Я думаю, що Джексон не в змозі перетворити JSON в об'єкти Java для підкласів. Будь ласка, допоможіть з параметрами конфігурації для Джексона для перетворення JSON в Java-об’єкти. Я використовую Spring Framework.
EDIT: Включено основну помилку, яка спричиняє цю проблему, у вищевказаний клас зразків.