我有一个ASP.NET MVC应用程序,它将JSON字符串返回给VIEW。
// Parsing the model returned on the VIEW
var jsonString = '@Html.Raw(Model.ToJson())';
var jsonObj = JSON.parse(jsonString);
问题是我无法解析,因为 jsonString 包含诸如" \"等字符。和"'"。
//Sample string
{ "description" : "<p>Sample<span style=\"color: #ff6600;\"> Text</span></strong></p>" }
答案 0 :(得分:5)
JSON是有效的JavaScript,因此您可以这样做:
var jsonObj = @Html.Raw(Model.ToJson());
仅供参考,JSON解析失败的原因是因为虽然"
使用\
进行转义以使其成为有效的JSON,但反斜杠本身需要在字符串中转义才能看到它们JSON解析器。比较:
JSON.parse('"quote: \""'); // error: unexpected string
JSON.parse('"quote: \\""'); // 'quote: "'
这个例子还应该澄清反斜杠发生了什么:
var unescaped = '\"', escaped = '\\"';
console.log(unescaped, unescaped.length); // '"', 1
console.log(escaped, escaped.length); // '\"', 2
答案 1 :(得分:0)
如果要创建有效的Javascript字符串,则需要转义反斜杠和撇号:
var jsonString = '@Html.Raw(Model.ToJson().Replace("\\", "\\\\").Replace("'", "\\'"))';
答案 2 :(得分:0)
去那里:
using Newtonsoft.Json;
JsonConvert.SerializeObject(your html string here);