誰能幫我從以下 json 字串中提取 [downloads][csv][href] 的特定值嗎?
{
"@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
}
我正在使用的當前代碼不回傳任何內容:
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,那么我愿意接受建議。抱歉,如果這是一個愚蠢的任務,我對 linq 和 json 的經驗非常有限。感謝您的幫助。
uj5u.com熱心網友回復:
您有JSON Path, 可用于specific從 JSON 字串中選擇元素。請參閱 Newtonsoft示例,或者您可以使用此JsonPath Nuget 包。
JsonPath Nuget 可以像下面這樣使用,
var input = "$.downloads.csv.href";
var path = JsonPath.Parse(input);
var hrefVal = path.Evaluate(jsonStr);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/466743.html
