[英]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.