JSONリクエストを取得して処理しようとすると、次のエラーが発生します。
org.codehaus.jackson.map.JsonMappingException:型に適したコンストラクターが見つかりません[単純型、クラスcom.myweb.ApplesDO]:JSONオブジェクトからインスタンス化できません(型情報を追加/有効にする必要がありますか?)
ここに私が送信しようとしているJSONがあります:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
コントローラーには、次のメソッドシグネチャがあります。
@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;
}
}
ApplesDO:
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
}
}
JacksonはJSONをサブクラスのJavaオブジェクトに変換できないと思います。ジャクソンがJSONをJavaオブジェクトに変換するための構成パラメーターを手伝ってください。Spring Frameworkを使用しています。
編集:上記のサンプルクラスでこの問題を引き起こしている主要なバグを含めました-解決策については、承認された回答をご覧ください。