我有一个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>" }

===============>>#1 票数: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

===============>>#2 票数:0

如果要创建有效的Javascript字符串,则需要转义反斜杠和撇号:

var jsonString = '@Html.Raw(Model.ToJson().Replace("\\", "\\\\").Replace("'", "\\'"))';

===============>>#3 票数:0

你去:

using Newtonsoft.Json;

JsonConvert.SerializeObject(your html string here);

  ask by Omar Olivo translate from so

未解决问题?本站智能推荐: