Hab*_*chi 7 java spring json jackson mapper
我试图从API中获取一些Json并将它们解析为一些POJO以与它们一起工作但我有这种情况我可以获得一个简单的String或一个字符串的数组.
Json看起来像这样:
{
"offerDisplayCategoryMapping": [
{
"offerKey": "EUICC_BASE_ACTIVATION_V01",
"categoriesKeys": {
"categoryKey": "Included"
}
},
{
"offerKey": "EUICC_BASE_ACTIVATION_V02",
"categoriesKeys": {
"categoryKey": "Included"
}
},
{
"offerKey": "EUICC_BASE_ACTIVATION_V03",
"categoriesKeys": {
"categoryKey": [
"Option",
"Included"
]
}
}]
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Spring Rest从API中获取结果.我创建了一个POJO代表categoriesKeys一个List<String>定义categoryKey,在我RestTemplate定义的ObjectMapper地方我启用DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY了简单字符串的情况,但这不起作用!!
有什么建议?
Sta*_*Man 13
除了已经提到的全局配置之外,还可以在单个属性上支持此功能:
public class Container {
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
// ... could also add Feature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED
public List<String> tags;
}
Run Code Online (Sandbox Code Playgroud)
我在 Spring 外只用 jackson 尝试过这个,它按预期工作:
ObjectMapper mapper = new ObjectMapper();
mapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
Run Code Online (Sandbox Code Playgroud)
将RestTemplatea 注册到MappingJacksonHttpMessageConverter它自己的ObjectMapper. 检查此答案以了解如何配置它ObjectMapper。