У меня есть метод контроллера Spring, который возвращает строку json с помощью Google.Gson. Проблема в том, что моя строка json содержит содержимое UTF-8, и когда я получаю URL-адрес от браузера, он показывает данные в кодированном формате.
@ResponseBody
@RequestMapping(value="/getLocations.json", method = RequestMethod.GET)
public String getLocations(HttpServletRequest request,HttpServletResponse response)throws Exception {
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().serializeNulls().create();
response.setContentType("application/json; charset=utf-8");
Set<Locations> locs = channelService.getLocations();
String json = gson.toJson(locs);
return json;
}
Когда я получаю доступ к getLocations.json из адресной строки браузера ниже, я получаю:
[{"id":1,"name":"\u0026#3248;\u0026#3262;\u0026#3255;\u0026#3277;\u0026#3231;\u0026#3277;\u0026#3248;\u0026#3264;\u0026#3247;"},{"id":2,"name":"Districts"}]
Любая идея, где я собираюсь? Или как я могу декодировать данные обратно?
попробуй это
var uri = "http://w3schools.com/my test.asp?name=ståle&car=saab";
var uri_enc = encodeURIComponent(uri);
var uri_dec = decodeURIComponent(uri_enc);
var res = uri_enc + "<br>" + uri_dec;
http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab // Encoded URI
http://w3schools.com/my test.asp?name=ståle&car=saab // Decoded URI
после декодирования попытайтесь разобрать json
var json = '{"result":true,"count":1}',
obj = JSON.parse(json);
charset=utf-8