我遇到了 JSON 问题。 我想将序列化对象传递给 JS 中的 JSON.parse 方法。 一切正常,直到字符串值之一没有引号,例如 HTML 代码。然后你在 JS 中得到 JSON 解析错误。
我简单地得到:
var test = JSON.parse('{"test":"<p>Terms <a href=\"google.pl\"></a></p>"}');
但有效的是:
var test = JSON.parse('{"test":"<p>Terms <a href=\\"google.pl\\"></a></p>"}');
这是我的测试 View 代码,有什么想法吗? 如何正确传递这个对象?
@{
Layout = null;
}
@{
string args = Newtonsoft.Json.JsonConvert.SerializeObject(new
{
test = @"<p>Terms <a href=""google.pl""></a></p>"
}, new Newtonsoft.Json.JsonSerializerSettings
{
ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(),
});
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<script>
var test = JSON.parse('@Html.Raw(args)');
</script>
<div>
</div>
</body>
</html>
最佳答案
您不需要解析它,因为它已经是一个 JSON 对象。 只需使用:
<script>
var test = @Html.Raw(args);
</script>
JSON.parse
用于将字符串解析为对象。
关于javascript - ASP.NET MVC 将字符串传递给 JSON.parse,并出现引号转义问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47651894/