ASP.NET JSON字符串与实体类的互转换示例代码


在ASP.NET中,JSON字符串与实体类(C#中的类)之间的互转换通常使用`System.Text.Json`或`Newtonsoft.Json`(也称为Json.NET)库来实现。以下是使用这两种库的示例代码。

### 使用`System.Text.Json`(.NET Core 3.0及更高版本)

#### JSON字符串转实体类


using System;
using System.Text.Json;

public class MyModel
{
    public string Name { get; set; }
    public int Age { get; set; }
}

// 假设有以下JSON字符串
string jsonString = "{\"Name\":\"John Doe\",\"Age\":30}";

// 将JSON字符串转换为实体类
MyModel myModel = JsonSerializer.Deserialize<MyModel>(jsonString);

Console.WriteLine($"Name: {myModel.Name}, Age: {myModel.Age}");

#### 实体类转JSON字符串


// 将实体类转换为JSON字符串
string jsonString = JsonSerializer.Serialize(myModel);

Console.WriteLine(jsonString);

### 使用`Newtonsoft.Json`(Json.NET)

首先,需要安装`Newtonsoft.Json` NuGet包。

#### JSON字符串转实体类


using Newtonsoft.Json;

// 假设有以下JSON字符串
string jsonString = "{\"Name\":\"John Doe\",\"Age\":30}";

// 将JSON字符串转换为实体类
MyModel myModel = JsonConvert.DeserializeObject<MyModel>(jsonString);

Console.WriteLine($"Name: {myModel.Name}, Age: {myModel.Age}");

#### 实体类转JSON字符串


// 将实体类转换为JSON字符串
string jsonString = JsonConvert.SerializeObject(myModel);

Console.WriteLine(jsonString);

请注意,这些示例假设您已经定义了一个名为`MyModel`的类,该类具有`Name`和`Age`属性。这些示例展示了如何将JSON字符串反序列化为`MyModel`类的实例,以及如何将`MyModel`类的实例序列化为JSON字符串。选择使用`System.Text.Json`还是`Newtonsoft.Json`取决于您的项目需求和.NET版本。`System.Text.Json`是.NET Core 3.0及更高版本中引入的,而`Newtonsoft.Json`是一个更广泛使用的第三方库,适用于更早的.NET版本和更复杂的JSON处理场景。