我有一个 MVC 3 Web 应用程序并返回一个 JSON 对象,我想使用 Linq 来限制返回给客户端 jquery 的结果。
Json 响应采用以下结构:
{
"Data": {
"Items": [
{
"Result": {
"Id": "e2ba4912-c387-4f54-b55e-06742a6858db",
"Name": "SomeOtherSetting",
"Value": "500",
"Archived": false
},
"Result": {
"Id": "17c27584-cea8-42c2-b6c4-0b30625ac3ce",
"Name": "Setting2",
"Value": "600",
"Archived": false
},
"Result": {
"Id": "17c27584-cea8-42c2-b6c4-0b30625ac3ce",
"Name": "Setting3",
"Value": "700",
"Archived": false
}
}]
}
}
……
例如,我需要返回或获取名称为“设置”的 json 项目。在示例中,这将仅返回 2 个 Json 节点。
我的 Linq 非常有限,我所拥有的是:设置是存储 Json 响应的位置。
NewtonSoft.Json.Linq.JObject data = NewtonSoft.Json.Linq.JObject.Parse(Settings);
var result = from p in data["Data"]["Items"].Children()
where (p["Result"]["Name"].Contains("Expenses.Help.Tip"))
select new { Name = (string)p["Result"]["Name"], Value = (string)p["Result"]["Value"] };
当我运行它时,我的结果一无所获。谁能帮助并告诉我我做错了什么?
谢谢。