优秀的编程知识分享平台

网站首页 > 技术文章 正文

C# 获取未知结构的JSON对象的属性值

nanyue 2024-09-18 21:29:28 技术文章 4 ℃

要在C#中获取未知结构的JSON对象的属性值

您可以使用Newtonsoft.Json库中的JObject类和递归方法。

递归方法允许您在不知道JSON对象结构的情况下遍历和获取属性值。

以下是一个示例代码,演示如何递归地获取未知结构的JSON对象的属性值:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;

namespace DynamicJsonExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string json = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\", \"address\": {\"street\": \"123 Main St\", \"zip\": \"12345\"}}";

            // 解析JSON字符串为JObject对象
            JObject jsonObject = JObject.Parse(json);

            // 获取属性值
            GetPropertyValues(jsonObject);

            Console.ReadLine();
        }

        static void GetPropertyValues(JObject jsonObject)
        {
            foreach (var property in jsonObject.Properties())
            {
                if (property.Value.Type == JTokenType.Object)
                {
                    // 如果属性值是一个对象,则递归调用该方法
                    GetPropertyValues((JObject)property.Value);
                }
                else
                {
                    // 获取属性值并打印
                    Console.WriteLine(property.Name + ": " + property.Value.ToString());
                }
            }
        }
    }
}

在这个示例中,我们首先将JSON字符串解析为JObject对象。

然后,我们使用递归方法GetPropertyValues来遍历JSON对象的属性。

如果属性值是一个对象,则递归调用该方法。

否则,我们获取属性值并打印。

这种方法允许您处理未知结构的JSON对象,并获取其属性值,而不需要事先知道JSON对象的结构。

希望这个示例对您有帮助!

Tags:

最近发表
标签列表