ASP.NET中JSON的序列化和反序列化
发布人:shili8
发布时间:2025-02-19 03:07
阅读次数:0
**ASP.NET 中 JSON 的序列化和反序列化**
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于 Web 应用程序之间的通信。ASP.NET 提供了对 JSON 的支持,使得开发人员能够方便地将 .NET 对象序列化为 JSON 格式,并将 JSON 数据反序列化为 .NET 对象。
**JSON 序列化**
JSON 序列化是指将 .NET 对象转换为 JSON 格式的过程。ASP.NET 提供了 `JavaScriptSerializer` 类来实现此功能。
### 示例代码
csharpusing System;
using System.Web.Script.Serialization;
public class Person{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program{
public static void Main()
{
// 创建一个 Person 对象 Person person = new Person();
person.Name = "John";
person.Age =30;
// 使用 JavaScriptSerializer 序列化 Person 对象 JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(person);
Console.WriteLine(json);
}
}
### 输出结果
json{"Name":"John","Age":30}
**JSON 反序列化**
JSON 反序列化是指将 JSON 数据转换为 .NET 对象的过程。ASP.NET 提供了 `JavaScriptSerializer` 类来实现此功能。
### 示例代码
csharpusing System;
using System.Web.Script.Serialization;
public class Person{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program{
public static void Main()
{
// JSON 数据 string json = "{"Name":"John","Age":30}";
// 使用 JavaScriptSerializer 反序列化 JSON 数据 JavaScriptSerializer serializer = new JavaScriptSerializer();
Person person = serializer.Deserialize(json);
Console.WriteLine(person.Name); // 输出: John Console.WriteLine(person.Age); // 输出:30 }
}
### 使用 Newtonsoft.Json 序列化和反序列化Newtonsoft.Json 是一个第三方 JSON 库,提供了更强大的功能。我们可以使用它来实现 JSON 序列化和反序列化。
### 示例代码
csharpusing System;
using Newtonsoft.Json;
public class Person{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program{
public static void Main()
{
// 创建一个 Person 对象 Person person = new Person();
person.Name = "John";
person.Age =30;
// 使用 JsonConvert 序列化 Person 对象 string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json);
}
}
### 输出结果
json{"Name":"John","Age":30}
### 示例代码(反序列化)
csharpusing System;
using Newtonsoft.Json;
public class Person{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program{
public static void Main()
{
// JSON 数据 string json = "{"Name":"John","Age":30}";
// 使用 JsonConvert 反序列化 JSON 数据 Person person = JsonConvert.DeserializeObject(json);
Console.WriteLine(person.Name); // 输出: John Console.WriteLine(person.Age); // 输出:30 }
}
### 使用 System.Text.Json 序列化和反序列化System.Text.Json 是 .NET Core 中的 JSON 库,提供了更强大的功能。我们可以使用它来实现 JSON 序列化和反序列化。
### 示例代码(序列化)
csharpusing System;
using System.Text.Json;
public class Person{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program{
public static void Main()
{
// 创建一个 Person 对象 Person person = new Person();
person.Name = "John";
person.Age =30;
// 使用 JsonSerializer 序列化 Person 对象 string json = JsonSerializer.Serialize(person);
Console.WriteLine(json);
}
}
### 输出结果
json{"Name":"John","Age":30}
### 示例代码(反序列化)
csharpusing System;
using System.Text.Json;
public class Person{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program{
public static void Main()
{
// JSON 数据 string json = "{"Name":"John","Age":30}";
// 使用 JsonSerializer 反序列化 JSON 数据 Person person = JsonSerializer.Deserialize(json);
Console.WriteLine(person.Name); // 输出: John Console.WriteLine(person.Age); // 输出:30 }
}
以上是 ASP.NET 中 JSON 序列化和反序列化的示例代码。使用不同的库(如 JavaScriptSerializer、Newtonsoft.Json 或 System.Text.Json)可以实现相同的功能。

