Chr*_*ton 2 c# linq jsonnode system.text.json
我有 JSON:
{
"dimensions": [
{
"name": "dim1"
},
{
"name": "dim2"
},
{
"name": "dim3"
}
]
}
Run Code Online (Sandbox Code Playgroud)
加载到 JsonObject 中
JsonObject root = JsonNode.Parse(jsonString)?.AsObject();
Run Code Online (Sandbox Code Playgroud)
我希望使用 LINQ 迭代 JsonArray
var list = root["dimensions"].GetEnumerator().Select(p => p["name"].GetValue).ToArray();
Run Code Online (Sandbox Code Playgroud)
但出现错误
CS1061:“IEnumerator <JsonNode?>”不包含“Select”的定义,并且找不到接受“IEnumerator <JsonNode?>”类型的第一个参数的可访问扩展方法“Select”(您是否缺少 using 指令或装配参考?)
我在谷歌上搜索 JsonNode 和 LINQ 时几乎找不到什么。也许还不支持?
AsArray
在返回的节点上使用jsonNode["dimensions"]
:
var list = jsonNode["dimensions"].AsArray()
.Select(node => node["name"].AsValue().GetValue<string>()) // or node["name"].ToString()
.ToArray();
Run Code Online (Sandbox Code Playgroud)