JsonMappingException:找不到适合类型[简单类型,类]的构造函数:

尝试获取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;

    }

}

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。


编辑:在上面的示例类中包括导致此问题的主要错误-请查看已接受的答案以寻求解决方案。


牧羊人nacy
浏览 525回答 3
3回答

汪汪一只猫

发生这种情况的原因如下:您的内部类应定义为静态private static class Condition {&nbsp; //jackson specific&nbsp; &nbsp;&nbsp;}可能是您的类中没有默认的构造函数(更新:事实并非如此)private static class Condition {&nbsp; &nbsp; private Long id;&nbsp; &nbsp; public Condition() {&nbsp; &nbsp; }&nbsp; &nbsp; // Setters and Getters}可能是您的设置员定义不正确或不可见(例如私人设置员)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java