Экранирование котировок в 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, чтобы доказать, что он работает.