ASP.NET MVC使用引用转义问题将字符串传递给JSON.parse

时间:2017-12-05 10:56:14

标签: 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>"}');

这是我的测试视图代码,有什么想法吗? 如何正确传递这个对象?

@{
    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>

1 个答案:

答案 0 :(得分:2)

您不需要解析它,因为它已经是JSON对象。 只需使用:

Earlier Result will be 1+0+0+0+0+0+2 = 3

My desire result will be like (1*2)+0+0+0+0+0+(2*4) = 10

<script> var test = @Html.Raw(args); </script> 用于将字符串解析为对象。