![](/img/trans.png)
[英]Map JSON POSTed in Java Spring Rest Controller to POJO
[英]JSON to Spring Controller with POJO and Enum
我需要映射这样的东西:
JSON:
{'field1': 'value1', 'provider': {'name': 'nameprov', 'country': 'CODE'}}
到Spring MVC控制器:
@ResponseBody
Dummy getVal(@RequestBody MyCriteria criteria) {
实际上,MyCriteria是扩展此类的类:
public abstract class MyCriteria {
String field1;
//Getter and setter
Provider provider;
//Getter and setter
}
但是Provider内部有一个枚举:
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
}
所以我的问题是:我在做什么错? 我需要将字符串映射到“国家/地区”,然后再映射到“提供者”,但是出现此错误:
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() {}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.