【发布时间】:2016-09-05 18:31:39
【问题描述】:
我想过滤这样的 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 语句过滤嵌套键?
【问题讨论】: