使用对象映射器手动从rest控制器返回json
我有一个rest控制器返回一个json对象列表。当我调用方法1)时,它会按要求工作。 当我需要将序列化配置为忽略一个请求中的某些属性而不忽略另一个请求中的某些属性时,我使用的是mixIn注释和objectMapper。当我返回该对象时,它是xml格式的,而不是像以前一样的json格式。有人能帮忙吗?我意识到我现在正在返回一个字符串,但如果我想要与1)相同的响应,我需要将字符串转换为对象并像以前一样返回响应 (一) (二)使用对象映射器手动从rest控制器返回json,json,spring,objectmapper,Json,Spring,Objectmapper,我有一个rest控制器返回一个json对象列表。当我调用方法1)时,它会按要求工作。 当我需要将序列化配置为忽略一个请求中的某些属性而不忽略另一个请求中的某些属性时,我使用的是mixIn注释和objectMapper。当我返回该对象时,它是xml格式的,而不是像以前一样的json格式。有人能帮忙吗?我意识到我现在正在返回一个字符串,但如果我想要与1)相同的响应,我需要将字符串转换为对象并像以前一样返回响应 (一) (二) @RequestMapping(value=“/search”,metho
@RequestMapping(value=“/search”,method=RequestMethod.POST)
公共响应性搜索(@RequestBody SearchParams SearchParams){
列表结果=myService.find(searchParams);
ObjectMapper ObjectMapper=新的ObjectMapper();
objectMapper.getSerializationConfig().AddMixinNotations(MyObject.class,MyObject Filter.class);
字符串json=objectMapper.writeValueAsString(结果);
返回新的ResponseEntity(json,HttpStatus.OK);
}
返回
[
{"prop1":"val1", "prop2":"val2"},
{"prop1":"val3", "prop2":"val4"}
]
<data contentType="text/plain;charset=ISO-8859-1" contentLength="*"><![CDATA[
[
{"prop1":"val1", "prop2":"val2"},
{"prop1":"val3", "prop2":"val4"}
]
]]></data>
这将显示在soapui的xml选项卡中,而不是json选项卡中。任何人都可以帮忙吗?您是否尝试过手动设置内容类型?像@RequestMapping(value=…,products=“application/json;charset=UTF-8”)一样,您是否尝试手动设置内容类型?像@RequestMapping(value=…,products=“application/json;charset=UTF-8”)
@RequestMapping(value = "/search", method = RequestMethod.POST)
public ResponseEntity<String> search(@RequestBody SearchParams searchParams){
List<MyObject> result = myService.find(searchParams);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.getSerializationConfig().addMixInAnnotations(MyObject.class, MyObjectFilter.class);
String json = objectMapper.writeValueAsString(result);
return new ResponseEntity<String>(json, HttpStatus.OK);
}
<data contentType="text/plain;charset=ISO-8859-1" contentLength="*"><![CDATA[
[
{"prop1":"val1", "prop2":"val2"},
{"prop1":"val3", "prop2":"val4"}
]
]]></data>