📜  如何在 c# 中从 json 对象获取键值(1)

📅  最后修改于: 2023-12-03 15:38:13.505000             🧑  作者: Mango

如何在 C# 中从 JSON 对象获取键值

简介

JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的数据交换格式。在 C# 中,我们可以使用 Newtonsoft.Json 库解析 JSON 数据,并从 JSON 对象中获取键值。

步骤

以下是在 C# 中从 JSON 对象获取键值的步骤:

  1. 导入 Newtonsoft.Json 库

在代码中添加以下代码来引入 Newtonsoft.Json 库:

using Newtonsoft.Json;
  1. 解析 JSON 数据

使用 JObject 类来解析 JSON 数据,并转换成 C# 中的对象。例如,如果我们有以下 JSON 数据:

{
    "name": "John",
    "age": 30,
    "isMarried": true,
    "hobbies": [
        "reading",
        "music",
        "programming"
    ]
}

我们可以使用以下代码解析它:

string json = "{\"name\":\"John\",\"age\":30,\"isMarried\":true,\"hobbies\":[\"reading\",\"music\",\"programming\"]}";

JObject obj = JObject.Parse(json);
  1. 获取 JSON 对象的键值

使用 [] 运算符和键来获取 JSON 对象的键值。例如:

string name = (string)obj["name"];
int age = (int)obj["age"];
bool isMarried = (bool)obj["isMarried"];
JArray hobbies = (JArray)obj["hobbies"];

注意:由于 JObject 中的值可以是不同类型的,因此获取键值的代码需要使用相应的类型进行转换。

示例

以下是一个完整的示例,显示了如何在 C# 中从 JSON 对象获取键值:

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

namespace JsonParsing
{
    class Program
    {
        static void Main(string[] args)
        {
            string json = "{\"name\":\"John\",\"age\":30,\"isMarried\":true,\"hobbies\":[\"reading\",\"music\",\"programming\"]}";

            JObject obj = JObject.Parse(json);

            // Get values
            string name = (string)obj["name"];
            int age = (int)obj["age"];
            bool isMarried = (bool)obj["isMarried"];
            JArray hobbies = (JArray)obj["hobbies"];

            // Print values
            Console.WriteLine("Name: " + name);
            Console.WriteLine("Age: " + age);
            Console.WriteLine("IsMarried: " + isMarried);
            Console.WriteLine("Hobbies: " + string.Join(", ", hobbies));
        }
    }
}

运行以上代码,输出如下结果:

Name: John
Age: 30
IsMarried: True
Hobbies: reading, music, programming
总结

使用 Newtonsoft.Json 库,我们可以方便地在 C# 中解析和操作 JSON 数据。要获取 JSON 对象的键值,我们可以使用 [] 运算符和相应的类型进行转换。