Test für verschachtelte Schlüssel mit Json.NET

Ich möchte einen reaktiven Strom von json-codierten Zeichenfolgen wie folgt filtern:

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

Ich möchte nach Elementen filtern, die einen Wert für @ habekey2, so was

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

Aber das gibt mir den Fehler

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

Der einzige Weg, den ich finden kann, um das zu umgehen, ist Folgendes:

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"])

Gibt es eine Möglichkeit, mit einem einzelnen @ nach verschachtelten Schlüsseln zu filterWhere Erklärung

Antworten auf die Frage(2)

Ihre Antwort auf die Frage