javascript - ASP.NET MVC 将字符串传递给 JSON.parse,并出现引号转义问题

标签 javascript c# json asp.net-mvc

我遇到了 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/

相关文章:

javascript - 使用Canvas,如何绘制用户输入X次的形状?

php - 如何使用 json_encode 更正 php 中的语法

javascript - 使用 JSON 作为数据库的最佳方式?

c# - 使用 C# 创建动态按钮并按预定义的顺序放置它们

c# - GUI 和 Windows 服务通信

c# - DI with Unity Container - 使用附加参数解析的最佳实践?

json - 如何在 Postman 中随机化 ENUM 输入?

javascript - 使用文档级事件监听器而不是单独的事件监听器

javascript - 来自 JSON API 数据的 React 中的总和字段值

javascript - 如何在 angularjs Ionic 中将对象转换为数组