なんらかの理由で私にはわかりませんが、Springコントローラーにリクエストを送信すると、無効なJSON値が返されます。JSONオブジェクトをマッピングするためにJacksonを使用しています。これは、リクエストを行ったときに返されるデータです。
{} &&
{
"registros": [
{
"id": 251,
"matricula": "32849923",
"dadoPessoal": {
"nome": "Testando",
"email": "tiare@terra.com.br",
"telefone": "1235324812",
"celular": "123832911",
"foto": null,
"salario": 3829
},
"status": true,
"nascimento": {
"dataNascimento": 1417485600000,
"nascionalidade": "Brasil",
"localNascimento": "SP"
},
"documentoPessoal": {
"rg": "8329892332",
"orgaoEmissor": "SSP/SP",
"dataEmissao": 1417485600000,
"cpf": "016.015.XXX-XX",
"tituloEleitor": "adw91021",
"zonaDeVoto": "91aa",
"sessaoVoto": "2a",
"enderecoVoto": "adw"
},
"dataAdmissao": 1361674800000,
"dataDesligamento": null,
"version": 0
}
],
"total": 1
}
ここでの問題は、JSONの先頭に無効な文字「{}&&」が追加されていることです。私が理解していないのはどのようにですか?Springメソッドのどこにも定義されていないこれらの値を追加します。
私のリクエストマッピング:
@Override
@RequestMapping(value = { "/", "" }, method = RequestMethod.GET)
public ModelAndView index() {
ModelAndView view = new ModelAndView(VIEW_INDEX);
view.addObject("registros", service.findAll());
view.addObject("total", service.findAll().size());
return view;
}
ジャクソン構成:
/**
* @return MappingJacksonJsonView
*/
@Bean
public MappingJacksonJsonView mappingJacksonJsonView() {
MappingJacksonJsonView mappingJacksonJsonView = new MappingJacksonJsonView();
mappingJacksonJsonView.setContentType("application/json");
mappingJacksonJsonView.setObjectMapper(this.objectMapper());
mappingJacksonJsonView.setEncoding(JsonEncoding.UTF8);
mappingJacksonJsonView.setPrefixJson(true);
return mappingJacksonJsonView;
}
/**
* @return ContentNegotiatingViewResolver
*/
@Bean
public ContentNegotiatingViewResolver contentNegotiatingViewResolver() {
List<ViewResolver> viewResolvers = new ArrayList<ViewResolver>();
// Tiles
viewResolvers.add(this.tileViewResolver());
// Views
List<View> defaultViews = new ArrayList<View>();
defaultViews.add(this.mappingJacksonJsonView());
ContentNegotiatingViewResolver contentNegotiatingViewResolver = new ContentNegotiatingViewResolver();
contentNegotiatingViewResolver.setViewResolvers(viewResolvers);
contentNegotiatingViewResolver.setDefaultViews(defaultViews);
contentNegotiatingViewResolver.setOrder(0);
return contentNegotiatingViewResolver;
}