繁体   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