2017-02-15 77 views
0

我需要映射是這樣的:JSON春控制器與POJO和枚舉

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 
} 

但提供者有一個enum裏面:

public class Provider{ 
    String name; 
    Country country; //Country is an Enum 

所以,我創建了一些轉換器,但它不起作用。

我加入他們的web配置:

​​

字符串國家:

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) 

任何線索,將感激不盡。謝謝!

回答

1

你應該創建一個默認的構造函數Provider類,像

public Provider() {} 
+0

哦!謝謝!另外,正如我懷疑的那樣,所有的轉換器都沒有必要實現正確的映射。 – MarcosTonina