gpt4 book ai didi

c# - 从 JSON 获取属性名称

转载 作者:行者123 更新时间:2023-12-05 02:56:05 26 4
gpt4 key购买 nike

我想像这样用 System.Text.Json 解析一个 JSON 对象:

[{
"success": {
"/a/b/c": false
}
}]

我想知道第一个属性是否被命名为例如以下代码成功或错误:

using (var document = JsonDocument.Parse(test))
{
var root = document.RootElement;
var success = root.EnumerateArray().Current;
Console.WriteLine(success);
}

但不知何故我无法获得 success 属性(property),最重要的是它的名字。

最佳答案

您的 JSON 是一个对象数组,因此要获取数组中第一个条目中第一个属性的名称,您可以组合 EnumerateArray()EnumerateObject()像这样:

using var document = JsonDocument.Parse(test);

var names = document.RootElement
.EnumerateArray()
.SelectMany(o => o.EnumerateObject())
.Select(p => p.Name);

var firstName = names.FirstOrDefault();

也就是说,JSON standard将对象定义为一组无序的名称/值对,因此您可能不想硬编码您的代码以仅检查第一个属性。以下代码检查第一个对象是否具有所需名称的任何属性:

var propertyName = "success";

using var document = JsonDocument.Parse(test);

var hasProperty = document.RootElement
.EnumerateArray()
.Take(1) // Just the first object
.Any(o => o.EnumerateObject().Any(p => p.Name == propertyName));

如果要检查数组中的任何对象是否具有所需的属性,请删除 .Take(1)

演示 fiddle here .

关于c# - 从 JSON 获取属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60838935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com