改进了选择 Json 的 Linq 语句



>我有一些这样的json:

[{
    "id": "20148324",
    "teacher", "Mr Jones",
    "names": ["john", "bill", "ben"],
    "priority": 2
},
{ 
    "id": "56128324",
    "teacher", "Mrs Jones"
    "names": ["john", "bill", "ben"],
    "priority": 1
}]

我希望能够首先选择优先级值为 1 的子级,然后在该子级中选择嵌套名称数组中的姓氏。

我可以通过两个步骤完成此操作,但想知道如何使用一个 linq 语句来完成。

这就是我到目前为止得到的,但我只添加一个字典项目。如何将所有带有教师姓名的姓名单独添加到字典中:

var things = response.Where(p => p["priority"].Value<int>() == 1)
                             .ToDictionary(m => m["teacher"].ToString(),
                                           m => m["names"].Children().ToString());

最终做到了。不相信这是最好的方法,但它有效。

var data = response.Where(p => p["priority"].Value<int>() == 1)
                             .SelectMany(s=>s["names"])
                             .ToDictionary(m => m.Value<string>(),
                                           m => m.Parent.Parent.Parent["teacher"].ToString());

相关内容

  • 没有找到相关文章

最新更新