Java JSON到带有POJO和Enum的Spring控制器
我需要绘制这样的地图: JSON: 到Spring MVC控制器:Java JSON到带有POJO和Enum的Spring控制器,java,json,spring,spring-mvc,Java,Json,Spring,Spring Mvc,我需要绘制这样的地图: JSON: 到Spring MVC控制器: @ResponseBody Dummy getVal(@RequestBody MyCriteria criteria) { 其中MyCriteria实际上是一个扩展了以下内容的类: public abstract class MyCriteria { String field1; //Getter and setter Provider provider; //Getter and setter } 但提供
@ResponseBody
Dummy getVal(@RequestBody MyCriteria criteria) {
其中MyCriteria实际上是一个扩展了以下内容的类:
public abstract class MyCriteria {
String field1;
//Getter and setter
Provider provider;
//Getter and setter
}
但提供程序内部有一个枚举:
public class Provider{
String name;
Country country; //Country is an Enum
因此,我创建了一些转换器,但它不起作用
我将它们添加到web配置中:
@Override
public void addFormatters (FormatterRegistry registry) {
registry.addConverter(new StringToCountryConverter());
registry.addConverter(new StringToProviderConverter());
}
字符串到国家/地区:
public Country convert(String s) {
//It never enters here
}
和字符串到提供程序:
@Override
public Provider convert(String[] s) {
//never here
}
所以我的问题是:我做错了什么?我需要将字符串映射到Country,然后映射到Provider,但出现以下错误:
Could not read document: Can not construct instance of ...Provider: no suitable constructor found, can not deserialize from Object value...
提供程序具有以下构造函数:
public Provider(String name, String country)
public Provider(String name, Country country)
如果有任何线索,我们将不胜感激。谢谢 您应该为Provider类创建一个默认构造函数,如
public Provider() {}
哦谢谢此外,正如我所怀疑的,所有转换器都不是实现正确映射所必需的。
public Provider() {}