.Net Core JsonSerializer - Как отключить кодировку специальных символов

Я использую новый сериализатор Json, включенный в .Net Core (не Newtonsoft).

Я заключаю номер телефона в объект с кодом страны, поэтому у меня есть объект со строковым свойством, которое содержит номер. Пример:

public class MyObject {
    public string phoneNumber { get; set; }
}

var myObject = new MyObject() {
    phoneNumber = "+569123123123"
}

Мне нужно закодировать этот объект как Json, поэтому я делаю:

var jsonToSend = System.Text.Json.JsonSerializer.Serialize(myObject);

В результате я получаю следующее:

 {
    "phoneNumber":"\u002B569123123123"
 }

Мне нужно вот это:

{
  "phoneNumber":"+569123123123"
}

Итак, мне нужно найти способ отключить кодировку специальных символов.

Кстати, я предполагаю, что это сгенерированный Json, потому что я использую визуализатор текста Visual Studio для проверки переменной при отладке.

Заранее спасибо.


person Cristopher Rosales    schedule 07.02.2020    source источник
comment
Это даже не особый персонаж   -  person Panagiotis Kanavos    schedule 07.02.2020
comment
Обратите внимание: если ваш парсер JSON споткнется об этом, у вас плохой парсер JSON. Допускается экранирование любого символа в строке JSON, даже для символов, где это не требуется строго (и + является особенным во многих контекстах, где строки передаются онлайн, в первую очередь URI, поэтому превентивный экранирование отнюдь не является плохим идея).   -  person Jeroen Mostert    schedule 07.02.2020
comment
Документы для UnsafeRelaxedJsonEscaping объясняет, что эти символы кодируются по умолчанию, чтобы сделать строку безопасной для использования в HTML. Другие сериализаторы Json не имеют проблем с обработкой escape-последовательностей. Из JSON RFC Any character may be escaped.. Если какой-то парсер подавится этим, значит в нем серьезная ошибка   -  person Panagiotis Kanavos    schedule 07.02.2020