2013-03-11 26 views
0

由於某種原因,我向我的Spring控制器發出請求時,它返回無效的JSON值。我使用Jackson來映射我的JSON對象。這是當我提出請求返回的數據:Spring Controller生成的無效JSON內容(使用Jackson庫)

{} && 
{ 
    "registros": [ 
     { 
      "id": 251, 
      "matricula": "32849923", 
      "dadoPessoal": { 
       "nome": "Testando", 
       "email": "[email protected]", 
       "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; 
} 

回答

3

謝謝大家。我發現了錯誤! 當我開始閱讀,我發現這個的Javadoc:「默認爲false‘

’指示是否由該視圖中的輸出JSON應該與前綴」 {} & &

springsource docs

相關問題