Как исключить пустые строки во время десериализации Json? - PullRequest
0 голосов
/ 10 октября 2018

Как я могу исключить пустые записи из json.Я десериализовал строку в список объектов.Я могу получить доступ к этому нулевому значению в этом списке, но я хочу исключить этот нулевой и сохраненные не нулевые строки в списке.

[{"actionId ": 1778," locName ":" IL ",}, {"actionId": 1779, "locName": "NY",}, {"actionId ": 1774, "locName": "IL",}, {"TransactionsId": 1771, "locName": "NY"}, null ]

var result = JsonConvert.DeserializeObject<TList>(inputText);

1 Ответ

0 голосов
/ 10 октября 2018

По умолчанию вы не можете.Рассмотрим этот код, который инструктирует JSON.NET игнорировать нулевые значения:

public static void Main()
{
    var json = "[ { \"transactionId\": 1778, \"locName\": \"IL\", }, { \"transactionId\": 1779, \"locName\": \"NY\", }, { \"transactionId\": 1774, \"locName\": \"IL\", }, { \"transactionId\": 1771, \"locName\": \"NY\" }, null ]";

    var list = JsonConvert.DeserializeObject<List<Entity>>(json, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
}

public class Entity
{
    public string TransactionId { get; set; }
    public string LocName { get; set; }
}

Тогда последняя запись list будет по-прежнему null, поскольку это не нулевое значение , это нулевой элемент массива .

Если вы хотите отфильтровать их, просто используйте Linq:

var nonNullList = list.Where(l => l != null).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...