1. 程式人生 > >java 後臺解析前臺傳json串雙引號轉義問題

java 後臺解析前臺傳json串雙引號轉義問題

jsp 頁面傳的String : 

"[{"prodIndex":1,"catOne":"311","catOneName":"輪式拖拉機","brandId":"3","brand":"東方紅","model":"LX600","njName":"輪式拖拉機 LX600 東方紅","num":"2","referPrice":0,"referTotalPrice":0}]"



由於雙引號會被轉義:

 [{"prodIndex":1,"catOne":"311","catOneName":"輪式拖拉機","brandId":"3","brand":"東方紅","model":"LX600","njName":"輪式拖拉機 LX600 東方紅","num":"2","referPrice":0,"referTotalPrice":0}]


這時用gson轉出時會提示報錯

 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected ':' at line 1 column 9 path $[0].&quot
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)


解決辦法  使用 StringEscapeUtils 工具類 中 unescapeHtml4 方法  可以轉義

 String newJson = StringEscapeUtils.unescapeHtml4(jsonStr);


 [
    {
        "prodIndex": 1,
        "catOne": "311",
        "catOneName": "輪式拖拉機",
        "brandId": "3",
        "brand": "東方紅",
        "model": "LX600",
        "njName": "輪式拖拉機 LX600 東方紅",
        "num": "2",
        "referPrice": "0",
        "referTotalPrice": "0"
    }
]