1

在我的应用程序中,当我在文本字段中输入值作为我的“名称”时,框架会生成一个类似的字符串(这是我无法控制的):

"[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]"

现在这个字符串被传递给 JSON.parse() 方法,该方法由于名称字段不明确而产生错误

\"姓名\":\"我的\"姓名\"

var str = JSON.parse("[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]")

这会导致 JSON 异常

有什么我可以用字符串做的:

"[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]"

转义双引号字符my " namemy \" name使其对 JSON.parse 方法有效。

我无法控制 JSON 字符串,我只是将名称作为我的“名称”传递,框架创建了一个传递给 JSON.parse() 的字符串

4

2 回答 2

0

我经历了一系列的text更换。你可以试试这个:

var str = "[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]";

JSON.parse(
str.replace(/\\/i,"").
replace(/{"/g,"{'").
replace(/":"/g,"':'").
replace(/","/g,"','").
replace(/"}/g,"'}").
replace(/'/g,"\@@@").
replace(/"/g,"\\\"").
replace(/@@@/g,"\"")
);

它将返回您想要的JSON数组

于 2015-12-23T06:48:50.827 回答
-1
var str = "[{\"id\":\"201500000001002\"}]";
str.replace("\"*","\\\"");
var obj = JSON.parse(str);
于 2015-12-23T05:25:51.663 回答