0
我有一些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());
我認爲最後的ToString()是不需要的。看起來你將Children()數組轉換爲字符串(即「String []」)。 – 2012-04-13 18:17:32
@ VladimirPerevalov然後它仍然會返回一個字典項目,但作爲字典<字符串,IEnumerable>()。我需要以某種方式迭代名稱,並跳回到父項以選擇教師名稱。 –
gdp
2012-04-13 18:26:04
我想我看到了問題。你想讓所有的老師的學生?然後你需要執行分組。例如'response.Where(p => p [「priority」]。Value()== 1).Group(m => m [「teacher」]。ToString(),m => m [「names」 ] .Children()) –
2012-04-13 18:37:34