WedX - журнал о программировании и компьютерных науках

Newtonsoft.Json возвращает символ '\'

Я использую библиотеку Newtonsoft.Json для сериализации объекта. Проблема в том, что когда я создаю строку JSON, она содержит символ «\». Я видел некоторые ответы, в которых говорилось, что это только проблема отладчика, но я получаю JSON с этим «\» до клиента, который использует службу. Я также пытался удалить этот chacater с помощью функции, но похоже, что это происходит точно так же с StringBuilder.

private static string DatatableToJSON(DataTable dt)
{
    string JSONresult;
    JSONresult = JsonConvert.SerializeObject(dt, Formatting.None);
    return JSONresult;
}

И я получаю:

"[{\"Id\":\"72d209d5-0028-4162-94d0-d8cae856e1b7\",\"UserName\":\"nicolas\",\"Nombre\":\"ASD\"},{\ "Id\":\"8ecdd5eb-b6a8-40f7-87a6-28ae39d5924c\",\"Имя пользователя\":\"марио\",\"Nombre\":\"ASD\"},{\"Id\" :\"c48d2d27-40af-4bfe-a912-a18689c70076\",\"Имя пользователя\":\"diego\",\"Номер\":\"ASD\"}]"

Кто-нибудь может мне с этим помочь?. Это сводит меня с ума!.

Спасибо.

01.06.2015

  • Это бегство за цитатой. Узнайте больше об экранировании символов в C#. msdn.microsoft.com/en-us/library/h21280bw.aspx 01.06.2015
  • Я прочитал много информации об этом, но я не мог найти, как избежать получения того же символа на стороне клиента. 01.06.2015
  • Он не может появиться на стороне клиента. Если это так - вы сделали что-то не так. SerializeObject возвращает правильную строку без символов обратной косой черты. Символы обратной косой черты появляются во время отладки или кодирования, чтобы отличить их от кавычек начала\конца строки. Можете ли вы опубликовать пример кода? Вот пример кода, который работает: dotnetfiddle.net/tB6bbv 01.06.2015
  • / что-то ломает? 01.06.2015
  • Да, это просто мешает мне правильно анализировать JSON. Дело в том, что этого персонажа там быть не должно 02.06.2015

Ответы:


1

Это просто escape-символ. В String вы видите обратную косую черту как escape-символ. Вы можете запустить этот код.

JSONresult.ToString();

Вывод не включал "\".

01.06.2015
  • Это также возвращает символ «\», я только что проверил идентификатор 02.06.2015

  • 2

    Это escape-символ. Вы можете просто заменить все \', \", \\ на ', ", \. В любом случае, это странно, если они появляются на стороне клиента. Я думаю, что это может быть формат строки или фильтр, который вы использовали.

    03.06.2015

    3

    Наконец, это решило мою проблему. Я надеюсь, что это поможет кому-то:

    public static IHtmlString SerializeObject(object value)
    {
        using (var stringWriter = new StringWriter())
        using (var jsonWriter = new JsonTextWriter(stringWriter))
        {
            var serializer = new JsonSerializer
            {
                // Let's use camelCasing as is common practice in JavaScript
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
    
            // We don't want quotes around object names
            jsonWriter.QuoteName = false;
            serializer.Serialize(jsonWriter, value);
    
            return new HtmlString(stringWriter.ToString());
        }
    
    04.07.2015
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]