Тестирование вложенных ключей с помощью Json.NET?

Я хочу отфильтровать реактивный поток строк в кодировке json, например:

{ "Key1" : {"key2":"value"},
  "key3" : "other values"
}

Я хочу отфильтровать элементы, которые имеют некоторое значение дляkey2, как это:

IDisposable valueQuery = globalEventStream
    .Select(e => JObject.Parse(e.EventArgs.Data))
    .Where(e => e["key1"]["key2"] != null)

Но это дает мне ошибку

Cannot access child value on Newtonsoft.Json.Linq.JValue

Единственный способ обойти это - сделать следующее:

IDisposable deathDisposable = globalEventStream
    .Select(e => JObject.Parse(e.EventArgs.Data))
    .Where(e => e["key1"] != null).Select(e => e["key1"])
    .Where(e => e["key2"] != null).Select(e => e["key2"])

Есть ли способ фильтрации вложенных ключей с помощью одногоWhere заявление?