Я использую Asp. Net Core 3.1 MVC и пытаюсь сериализовать модель на странице Razor, но мне нужно, чтобы она была закодирована, чтобы она работала с JSON .parse, поэтому что я могу использовать средство восстановления даты для преобразования строк даты в объекты даты. Json .Serialize записывает json таким образом, чтобы его можно было использовать без JSON .parse, поэтому, если вы заключите его в одинарные кавычки, чтобы сделать его строкой, специальные символы не будут правильно экранированы и JSON .parse выдает ошибки, когда встречаются такие символы, как "\".
// Model definition { "myField": "abc\\def" }
<script type="text/javascript">
var data = '@Json.Serialize(Model)',
json = JSON.parse(data, myDateReviver);
</script>
Я нашел обходной путь, которого я бы хотел избежать, если это вообще возможно.
// Model definition { "myField": "abc\\def" }
<script type="text/javascript">
var data = JSON.stringify(@Json.Serialize(Model)),
json = JSON.parse(data, myDateReviver);
</script>
Есть ли правильный способ строкового кодирования результата @ Json .Serialize, чтобы он был совместим с JSON .parse?