Нуль-коалесцирующий оператор в соединении с JObject - PullRequest
0 голосов
/ 26 сентября 2018

Ниже приведен код, написанный для чтения JArray из заданного JObject.

Насколько я понимаю, когда значение "tags" в JObject равно null, IEnumerable следует инициализировать как пустое.

IEnumerable<string> tags = eventPayload?["tags"]?.Values<string>() ?? Enumerable.Empty<string>();

Однако, эти строки выдают исключение, когда json выглядит так:

{
    "tags": null   
}

System.InvalidOperationException
  HResult=0x80131509
  Message=Cannot access child value on Newtonsoft.Json.Linq.JValue.

Если бы я должен был сделать строку выше, чтобы прочитать ноль и инициализировать перечисляемый как пустой, какие изменения мне нужно сделать?

1 Ответ

0 голосов
/ 26 сентября 2018

Проблема в том, что eventPayload?["tags"] это JValue.Null, а не null.

...