Newtonsoft JSON 中的转义引号

本文关键字:转义 JSON Newtonsoft | 更新日期: 2023-09-27 17:56:11

我有一个对象:

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 JSON 中的转义引号

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

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

将输出:

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

而且,因为你总是需要一个JSFiddle来证明它的工作原理。