You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6中使用System.Text.Json.Nodes获取JsonObject属性名的方法

获取System.Text.Json.Nodes.JsonObject的属性名

直接访问Keys属性

因为JsonObject实现了IDictionary<string, JsonNode?>接口,所以可以直接通过Keys属性拿到所有属性名:

foreach (string propertyName in obj.Keys)
{
    Console.WriteLine(propertyName); // 依次输出property1、property2
}

遍历键值对(同时获取属性名和值)

如果需要同时拿到属性名和对应的值,可以直接遍历JsonObject的键值对集合:

foreach (KeyValuePair<string, JsonNode?> kvp in obj)
{
    Console.WriteLine($"属性名:{kvp.Key},对应值:{kvp.Value?.ToString()}");
}

替代方案:使用JsonDocument(只读场景更高效)

如果只是读取属性名,不需要修改JSON结构,推荐用JsonDocument——它是只读模型,内存占用更低、性能更优,尤其适合处理大JSON:

using JsonDocument doc = JsonDocument.Parse(requestBody);
JsonElement rootElement = doc.RootElement;

foreach (JsonProperty prop in rootElement.EnumerateObject())
{
    Console.WriteLine(prop.Name); // 获取属性名
    // 如需获取对应值:prop.Value
}

两者的核心区别:

  • JsonObject是可变DOM模型,支持添加、修改、删除属性,适合需要操作JSON结构的场景;
  • JsonDocument是高性能只读模型,适合仅读取数据的场景。

内容的提问来源于stack exchange,提问作者Andres Camacho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 07:24:12