【发布时间】:2012-04-13 18:01:08
【问题描述】:
我有一些这样的 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());
【问题讨论】:
-
我认为不需要最后一个 ToString() 。看来您将 Children() 数组转换为字符串(即“String[]”)。
-
@VladimirPerevalov 那么它仍然会返回一个字典项,但是作为字典
>()。我需要以某种方式遍历名称并跳回到父级以选择教师姓名。 -
我想我看到了问题所在。你想得到一个老师的所有学生?然后你需要进行分组。类似 `response.Where(p => p["priority"].Value
() == 1).Group(m => m["teacher"].ToString(), m => m["名字"].Children()) -
@VladimirPerevalov 嗨,我得到的结果与之前的结果与字符串和列表之前的结果相同
。 -
你能更准确地告诉我你想要达到什么目标吗?编写包含 4-5 项的示例数据,并显示您希望看到的结果数据。 (用这些更新问题)