Десериализуйте неопределенное значение с помощью Newtonsoft. Json - PullRequest
0 голосов
/ 28 мая 2020

Можно ли десериализовать строки со значением undefined (без кавычек)?

Запуск JsonConvert.DeserializeObject с настройками по умолчанию вызывает исключение

При анализе значения обнаружен неожиданный символ : u. Путь 'message'

Пример JSON:

{
"name":"nameval",
"message":undefined
}

Я пытаюсь десериализовать его следующим образом:

JsonConvert.DeserializeObject<Record>(json);

Со следующим классом данных:

public class Record
{
    public string Name {get;set;}
    public string Message {get;set;}
}

Я предполагаю, что такое JSON значение из примера может быть недействительным на 100%, но мне нужно иметь возможность его обработать.

ОБНОВЛЕНИЕ:

Это можно проанализировать это JSON с помощью JObject и заменить неопределенное значение. Но решение не очень изящное.

1 Ответ

0 голосов
/ 28 мая 2020

Как указано в , этот ответ , undefined не является допустимым значением JSON, поэтому Newtonsoft имеет право не обрабатывать его.

Вы можете написать собственное дезинфицирующее средство для найти и заменить undefined на null, прежде чем передать его JsonConvert.DeserializeObject<Record>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...