首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用linq从这个json字符串中提取特定值

如何使用linq从这个json字符串中提取特定值
EN

Stack Overflow用户
提问于 2022-04-27 14:06:52
回答 1查看 206关注 0票数 1

有人能帮我从下面的json字符串中提取downloadshref的特定值吗?

代码语言:javascript
复制
{
"@context": "https://cdn.ons.gov.uk/assets/json-ld/context.json",
"alerts": [],
"collection_id": "cmdr",
"dimensions": [
    various dimensions here
],
"downloads": {
    "csv": {
        "href": "https://download.beta.ons.gov.uk/downloads/datasets/regional-gdp-by-year/editions/time-series/versions/4.csv",
        "size": "568021"
    },
    "csvw": {
        "href": "ref",
        "size": "1903"
    },
    "xls": {
        "href": "ref",
        "size": "80768"
    }
},
"edition": "time-series",
"id": "5c",
"links": {
    "dataset": {
        "href": "ref",
        "id": "regional-gdp-by-year"
    },
    "edition": {
        "href": "ref",
        "id": "time-series"
    },
    "self": {
        "href": "ref"
    }
},
"release_date": "2021",
"state": "published",
"usage_notes": [],
"version": 4

}

我使用的当前代码没有返回任何内容:

代码语言:javascript
复制
        var labels = JObject.Parse(observationsJson)["downloads"];
        var results = labels.Select(data => new
        {
            label = (string)data["href"]
        });
        foreach (var item in results)
        {
            csvDownloadAddress = item.label;
        }

如果有另一种方法而不是使用linq,那么我愿意接受建议。对不起,如果这是一个愚蠢的追求,我的经验与林克和json是非常有限的。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-27 14:39:01

您有JSON Path,它可以用于从JSON字符串中选择specific元素。请参阅Newtonsoft 示例,或者您可以使用这个JsonPath Nuget包。

JsonPath Nuget可以像下面这样使用

代码语言:javascript
复制
    var input = "$.downloads.csv.href";
    var path = JsonPath.Parse(input);
    var hrefVal = path.Evaluate(jsonStr);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72030238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档