转义Newtonsoft JSON中的引号

时间:2015-06-15 12:43:49

标签: c# asp.net-mvc razor json.net

我是一个对象:

public class Test 
{
    public string Prop1 { get; set; }
}

我想在视图中将其序列化为json,所以在我的cshtml中:

<script type="text/javascript">
   var myJson = JSON.parse('@Html.Raw(JsonConvert.Serialize(Model.MyTest))');
</script>

一直有效,直到Prop1包含引号,因为它呈现为:

var myJson = JSON.parse('{"Prop1":"\"Quoted text\""}');

不幸的是,这样的行抛出了解析错误。 我知道它应该是:

 var myJson = JSON.parse('{"Prop1":"\\"Quoted text\\""}');

如何配置Newtonsoft以正确的方式对其进行序列化?

1 个答案:

答案 0 :(得分:10)

你不应该再次解析字符串,因为已经将它序列化为JSON,你可以直接在Javascript中使用它(JSON中的JS)。

var myJson = @Html.Raw(JsonConvert.Serialize(Model.MyTest));

将输出:

var myJson = {"Prop1":"\"Quoted text\""};

而且,because you always need a JSFiddle to prove it works.