Экранирование котировок в Newtonsoft JSON

у меня есть объект:

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 ответов


вы не должны анализировать строку во второй раз, так как уже сериализовали ее как JSON, вы можете напрямую использовать ее в Javascript (JS в JSON).

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

вывод:

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

и потому что вам всегда нужен JSFiddle, чтобы доказать, что он работает.