gpt4 book ai didi

javascript - Json.Parse 转义换行符

转载 作者:数据小太阳 更新时间:2023-10-29 05:18:54 24 4
gpt4 key购买 nike

我有一个页面,我正在尝试使用 JSON.parse 解析以下 json 字符串

'[{"Name":"Eggs","Complete":false,"Notes":"Notes here\n"},{"Name":"Sugar","Complete":false,"Notes":null}]'

但是下面的代码给出了错误 "Uncaught SyntaxError: Unexpected token"

var groceriesJson = JSON.parse(jsonString);

然后我才知道是因为json字符串中的\n。所以我确实尝试了this solution .但没有运气。仍然是同样的错误 "Uncaught SyntaxError: Unexpected token"

function escapeSpecialChars(jsonString) {

return jsonString.replace(/\\n/g, "\\n")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace(/\\f/g, "\\f");

}

var groceriesJson = JSON.parse(escapeSpecialChars(jsonString));

有什么想法吗?谢谢

---更新----

我不是手动创建这个字符串,我有从 C# 对象创建 json 字符串的 C# 代码

 var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
var groceries = jss.Serialize(Model);

然后在我的javascript代码中

var jsonString = '@Html.Raw(groceries)'
var groceriesJson = JSON.parse(escapeSpecialChars(jsonString));

最佳答案

你应该像在 \\n 中一样转义 \,你的 JSON 变成:

'[{"Name":"Eggs","Complete":false,"Notes":"Notes here\\n"},{"Name":"Sugar","Complete":false,"Notes":null}]';

如果您无法访问 JSON,那么您的函数应该是:

function escapeSpecialChars(jsonString) {

return jsonString.replace(/\n/g, "\\n")
.replace(/\r/g, "\\r")
.replace(/\t/g, "\\t")
.replace(/\f/g, "\\f");

}

var groceriesJson = JSON.parse(escapeSpecialChars(jsonString));

关于javascript - Json.Parse 转义换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26420926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com