📜  json 代码到 C# 代码 (1)

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

将JSON代码转换为C#代码的介绍

JSON是一种轻量级的数据交换格式,现在在互联网应用中广泛使用,并且可以轻松地在不同的平台上使用。 在C#中,可以将JSON文本反序列化为.NET对象,从而方便地操作数据。本文将介绍如何将JSON代码转换为C#代码,以及如何使用Newtonsoft.Json库进行反序列化。

JSON代码及其结构

JSON是一种文本格式,用于通过键值对存储和传输数据。以下是JSON代码的结构及其示例:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}

在JSON中,每个键值对都由一个逗号分隔。键是字符串,可以包含任何字符。值可以是字符串,数字,布尔值,数组,甚至是嵌套对象。数组是由方括号[]包围的逗号分隔值列表。

反序列化JSON代码到C#对象

使用C#中的Newtonsoft.Json库,可以轻松地将JSON代码反序列化为.NET对象。通过将JSON字符串传递给JsonConvert.DeserializeObject方法,可以将其转换为C#对象。以下是将JSON代码转换为C#对象的实例:

using Newtonsoft.Json;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

string json = @"{
    'name': 'John',
    'age': 30,
    'city': 'New York'
}";

Person person = JsonConvert.DeserializeObject<Person>(json);

Console.WriteLine(person.Name); // output: "John"

在上面的代码中,我们首先定义了一个名为Person的简单C#类,该类具有与JSON代码中的键相同的属性。 然后,我们将JSON代码存储在一个字符串变量中。 最后,我们使用JsonConvert.DeserializeObject方法将JSON代码反序列化为Person对象,然后打印姓名属性。

反序列化JSON数组到C#列表

在JSON代码中,数组由方括号[]表示。 可以使用List类将JSON数组反序列化为C#数组。以下是将JSON数组转换为C#列表的实例:

using Newtonsoft.Json;
using System.Collections.Generic;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

string json = @"[
    {
        'name': 'John',
        'age': 30,
        'city': 'New York'
    },
    {
        'name': 'Jane',
        'age': 25,
        'city': 'Los Angeles'
    }
]";

List<Person> people = JsonConvert.DeserializeObject<List<Person>>(json);

foreach (Person person in people)
{
    Console.WriteLine(person.Name);
}

在上面的代码中,我们仍然使用与前面示例相同的Person类,但JSON代码现在包含两个人对象的列表。使用JsonConvert.DeserializeObject方法将JSON代码反序列化为Person列表,然后打印每个人的姓名属性。

总结

使用Newtonsoft.Json库,可以轻松地将JSON代码转换为C#对象。 反序列化JSON代码的步骤是:

  1. 定义C#类,该类具有与JSON代码中的键相同的属性。
  2. 将JSON代码反序列化为C#对象或数组,使用JsonConvert.DeserializeObject方法。
  3. 操作C#对象或数组,就像任何其他.NET对象一样。

这是一个非常简单的过程,使得操作JSON代码和与它交互的数据变得非常容易。