2015-10-14 11 views
0

Я извлекаю JSON, хранящийся в БД (JSON хранится как строка в БД) и добавляет его к объекту модели в контроллере.Как удалить escape-символы, когда JSON добавлен к модели в контроллере весеннего останова

@RequestMapping(method = RequestMethod.GET, value = "/all") 
public void getJson(HttpServletRequest httpServletRequest, Model model){ 

    String json = serviceDao.getResponseJson(); 
    System.out.println(json); //Output: {"Response":[{"Id":"1","Name":"GAD"},{"Id":"2","Name":"GBD"}],"Status":"Success"} 
    model.addAttribute("result",json); 
} 

Но когда я вызываю службу из браузера, символы возврата добавляются в ответ.

http://localhost:8080/MyApplication/all.json

{ "результат": "{\" Ответ \ ": [{\" Id \ ": \" 1 \», \ "Имя \": \ "GAD \"} , {\ "Id \": \ "2 \", \ "Name \": \ "GBD \"}], \ "Status \": \ "Success \"} "}

Можете ли вы пожалуйста, помогите мне по пути отправки объекта JSON клиенту в веб-службе без escape-символов.

+0

Отослать JSON в качестве объекта, а не String. Или введите возвращаемый тип в String и верните JSON напрямую. –

+0

Если вы используете Spring, вы можете использовать @ResponseBody и напрямую возвращать объект класса вместо String. –

+0

https://stackoverflow.com/questions/34427279/how-do-i-pass-this-escaped-json-with-gson-java – Karthik

ответ

1

Вместо добавления строки в модели возврата JSON непосредственно

@RequestMapping(value="/all") 
public @ResponseBody String getJson(){ 
    //Logic 
return json; 

}

0

Вы можете использовать replaceAll:

String json = serviceDao.getResponseJson(); 

if (json != null && !json.isEmpty()) { 
    model.addAttribute("result", json.replaceAll("\\\\", "")); 
} 
0

Он будет работать определенно.

String str = "result':'\'\'Respon'"; 
String result = str.replaceAll("\\\'", ""); 
System.out.println(result); 
0

Если вы используете весной, вы можете использовать @ResponseBody и непосредственно вернуть объект класса вместо String.

Вы можете указать пример, приведенный в этом link.

Также не забудьте указать зависимость от maven.

<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.9.12</version> 
</dependency>