2016-12-02 10 views
0

jsonから返されるデータにはアクセント付きの文字が含まれているため、それらをエンコードしたいと考えています。ここでJSONを生成する方法である。jacksonによって生成されたJSONデータをエンコードする方法は?

import org.codehaus.jackson.map.ObjectMapper; 
... 
@RequestMapping(value = "/ajaxDataTableListUsers", produces = "application/json") 
    @ResponseBody 
    public String ajaxList(@RequestParam int draw, @RequestParam int start, @RequestParam int length, 
           @RequestParam("search[value]") String search, @RequestParam("order[0][column]") int triIdx, @RequestParam("order[0][dir]") String ordreTri) 
    throws JsonGenerationException, JsonMappingException, IOException { 

     List<Object[]> utilisateursDataTable = utilisateurDao.list(start, length, search, triIdx, ordreTri); 
     List<Utilisateur> utilisateursAll = utilisateurDao.list(); 
     DataTablesTO<Object[]> dt = new DataTablesTO<Object[]>(); 
     dt.setData(utilisateursDataTable); 
     dt.setDraw(draw); 
     if (search == null || search.equals("")) { 
      dt.setRecordsTotal(utilisateursAll.size()); 
      dt.setRecordsFiltered(utilisateursAll.size()); 
     } 
     else { 
      dt.setRecordsTotal(utilisateursDataTable.size()); 
      dt.setRecordsFiltered(utilisateurDao.nbUtilisateurTotalFiltered(search)); 
     } 

     ObjectMapper mapper = new ObjectMapper(); 

     return mapper.writeValueAsString(dt); // how to encode the data here ? 

    } 

私は、返された文字列をデバッグし、それがアクセント付き文字で目的のデータが含まれています。問題は、データがDataTableで表され、アクセント付きの文字が表示されない場合です。では、jsonデータをエンコードする方法は?

答えて

1

以下のように@RequestMappingで文字エンコードを設定できます。

@RequestMapping(value = "/ajaxDataTableListUsers", produces = {"application/json; charset=UTF-8"}) 
関連する問題