簡體   English   中英

JSON字符串中的雙引號轉義,在解析時導致錯誤

[英]Escaped double quotes in JSON string causing error while parsing

我正在使用GSON將List(Map(String,String))轉換為json字符串並通過會話將其傳遞給前端。 GSON正在使用/“正確地轉義雙qoutes”,但解析json字符串時問題就出現了。

生成的JSON字符串是

[{"queueList": [{"Name": "Queue\"1\""}, {"Name": "Queue2"}, {"Name": "Queue3"}, {"Name": "Queue4"}]}]

解析時我在chrome中遇到的錯誤是:“UnExpected Number”

我用來解析的代碼如下

 $(document).ready(function () {
var menuItemsStr = '[{"queueList": [{"Name": "Queue\"1\""}, {"Name": "Queue2"}, {"Name": "Queue3"}, {"Name": "Queue4"}]}]';
var menuItems = $.parseJSON(menuItemsStr);
$.each(menuItems[0].queueList, function (idx, obj) {
    var listItemHTML = $("#listItem").clone().html();
    listItemHTML = listItemHTML.replace(/\@QN/g, obj.Name);

    $("#list").append(listItemHTML);
});
});

下面是上面的代碼與問題http://jsfiddle.net/vinaybvk/qvwL9246/2/的小提琴鏈接

當JSON字符串有\\\\“然后上面的小提琴正常工作正常。
工作轉義的JSON字符串如下:

var menuItemsStr = '[{"queueList": [{"Name": "Queue\\"1\\""}, {"Name": "Queue2"}, {"Name": "Queue3"}, {"Name": "Queue4"}]}]';

我無法在“使行為正常工作之前找到添加\\\\的方法。我在java和javascript中嘗試。
我在javascript中嘗試做的是在評論中的上述小提琴
我在java中嘗試做的是str.replaceAll(“\\”“,”\\\\\\\\\\“));這是用\\\\\\”生成字符串

請讓我知道有沒有辦法糾正這個問題,或者我做錯了什么。

謝謝。

而不是引用字符串然后解析它,在這種情況下你可以這樣做:

var menuItems = <s:property value="#session['jsonFormattedResult']" escapeHtml = "false" />;

這會產生一個有效的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM