我在那里,我试图解析以下使用JSON.parseJson.Parse逃脱换行符
'[{"Name":"Eggs","Complete":false,"Notes":"Notes here\n"},{"Name":"Sugar","Complete":false,"Notes":null}]'
JSON字符串一个页面,但下面的代码提供错误"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));
你为什么试图在你的JavaScript中嵌入JSON作为字符串文字?只要将它用作数组文字并跳过手动分析步骤即可。 – Quentin 2014-10-17 08:32:07
That works.I'll it mark it as answer if you can post answer。谢谢 – sanjeev 2014-10-17 08:43:48