LINQ to JSON-选择特定属性匹配的数组对象元素
我的LINQ Fu技能相当差,在看了JSON.NET示例之后,我仍然无法确定如何选择我要的数据。我有一块JSON,如下所示LINQ to JSON-选择特定属性匹配的数组对象元素,linq,linq-to-json,Linq,Linq To Json,我的LINQ Fu技能相当差,在看了JSON.NET示例之后,我仍然无法确定如何选择我要的数据。我有一块JSON,如下所示 { "@odata.context": "http://wabi-us-north-central-b-redirect.analysis.windows.net/v1.0/myorg/$metadata#groups", "@odata.count": 2, "value": [ { "id": "z4885
{
"@odata.context": "http://wabi-us-north-central-b-redirect.analysis.windows.net/v1.0/myorg/$metadata#groups",
"@odata.count": 2,
"value": [
{
"id": "z48856e6-f385-4c89-a4b8-33c24hsr5c",
"isReadOnly": false,
"isOnDedicatedCapacity": false,
"name": "Blood Values"
},
{
"id": "k95d7cfe-c2a5-41f9-804w-e1b7ab31g31k",
"isReadOnly": false,
"isOnDedicatedCapacity": false,
"name": "Tissue Preps"
}
]
}
我正在尝试编写一个LINQ to JSON表达式,它允许我选择id
元素的值,其中name
值等于'tissure Preps'
var parsedJson = JObject.Parse(webResponse.Response);
var datasetId = parsedJson["value"].Select(i => i.SelectToken("id")).Where(n => n.SelectToken("name").ToString() == "Tissue Preps");
上面是我尝试过的LINQ表达式,但最终得到的
对象引用未设置为对象的实例。
错误。我希望避免编写一个类来表示JSON,这样它就可以被反序列化。因为您希望得到一个答案,而不是一个IEnumerable
,所以需要先使用:
var parsedJson = JObject.Parse(webResponse.Response);
var datasetId = parsedJson["value"].First(n => n.SelectToken("name").ToString() == "Tissue Preps")
.SelectToken("id")
.ToString();
我认为您的第一个选择将删除除标记“id”之外的所有内容,这意味着中有“name”可用于何处
-这是为什么?我尝试将置于何处
的第一位,但得到了相同的结果var groupId=parsedJson[“value”]。其中(y=>y.SelectToken(“name”).ToString()==groupName)。选择(x=>x.SelectToken(“id”)代码>。我想获取value
数组中元素的id
属性,其中name
属性是tissure Preps
您希望GroupId
是什么类型?如果“value”的多个成员的名称为“tissure Preps”,该怎么办?选择
肯定需要转到末尾。你确定这行有错误吗,我不知道怎么办?groupId
将是一个字符串。在任何情况下,都不会有多个具有相同的名称
值。基本上,我正在尝试根据名称查找标识符选择的返回类型是什么?我相信您希望先使用而不是Where
。