Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1296 of 1492 menu
◀ ▶

JavaScriptEncoder

JavaScriptEncoder.Default экранирует < как "\u003C". Serialize с кодировщиком по умолчанию содержит "\u003C". UnsafeRelaxedJsonEscaping оставляет < и не пишет "\u003C". Задаётся через Encoder в JsonSerializerOptions.

Синтаксис

options.Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping;

Пример

Давайте сериализовать с кодировщиком по умолчанию:

using System; using System.Text.Json; class Program { static void Main() { string res = JsonSerializer.Serialize("<"); bool hasEscape = res.Contains("\\u003C"); Console.WriteLine(hasEscape); } }

Результат выполнения кода:

True

Пример

Давайте сериализовать с ослабленным экранированием:

using System; using System.Text.Json; using System.Text.Encodings.Web; class Program { static void Main() { var options = new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping }; string res = JsonSerializer.Serialize("<", options); bool hasAngle = res.Contains("<"); Console.WriteLine(hasAngle); } }

Результат выполнения кода:

True

Пример

Давайте проверить отсутствие "\u003C":

using System; using System.Text.Json; using System.Text.Encodings.Web; class Program { static void Main() { var options = new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping }; string res = JsonSerializer.Serialize("<", options); bool hasEscape = res.Contains("\\u003C"); Console.WriteLine(hasEscape); } }

Результат выполнения кода:

False

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить