LINQ to 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

我的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": "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