c#json 数组序列话
时间: 2025-06-22 12:12:41 浏览: 15
### C# 中 JSON 数组的序列化
在 C# 中,可以使用 `System.Web.Script.Serialization.JavaScriptSerializer` 或者更现代的库如 `Newtonsoft.Json` 来实现 JSON 数组的序列化。以下是基于 `JavaScriptSerializer` 的示例代码以及说明。
#### 使用 JavaScriptSerializer 进行 JSON 数组的序列化
当需要将对象集合(例如列表)转换为 JSON 字符串时,可以通过以下方式完成:
```csharp
using System;
using System.Collections.Generic;
using System.Web.Script.Serialization;
public class Program
{
public static void Main()
{
// 创建一个学生列表
var students = new List<Student>
{
new Student { ID = "1", Name = "张三" },
new Student { ID = "2", Name = "李四" }
};
// 初始化序列化器
JavaScriptSerializer serializer = new JavaScriptSerializer();
// 将列表序列化为 JSON 字符串
string jsonArray = serializer.Serialize(students);
Console.WriteLine(jsonArray); // 输出 JSON 数组字符串
}
}
// 定义学生类
public class Student
{
public string ID { get; set; }
public string Name { get; set; }
}
```
此代码展示了如何将一个包含多个学生的列表转化为 JSON 数组字符串[^1]。
---
#### 使用 Newtonsoft.Json 进行 JSON 数组的序列化
除了内置的 `JavaScriptSerializer` 外,还可以使用功能更为强大的第三方库 `Newtonsoft.Json`(也称为 Json.NET)。其语法更加简洁且性能更高。
安装方法:通过 NuGet 包管理器安装 `Newtonsoft.Json`。
示例代码如下:
```csharp
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
// 创建一个学校对象,其中包含学生列表
var school = new School
{
grade = "高三",
code = "SCH001",
student = new List<Student>
{
new Student { ID = "1", Name = "王五" },
new Student { ID = "2", Name = "赵六" }
},
schoolMessage = new List<string> { "消息1", "消息2" }
};
// 序列化整个对象为 JSON 字符串
string json = JsonConvert.SerializeObject(school, Formatting.Indented);
Console.WriteLine(json); // 输出格式化的 JSON 字符串
}
}
// 学校类定义
public class School
{
public string grade { get; set; }
public string code { get; set; }
public List<Student> student { get; set; }
public List<string> schoolMessage { get; set; }
}
// 学生类定义
public class Student
{
public string ID { get; set; }
public string Name { get; set; }
}
```
在此示例中,不仅实现了对学生列表的序列化,还扩展到了嵌套结构的对象序列化[^2]。
---
#### 总结
无论是使用 `JavaScriptSerializer` 还是 `Newtonsoft.Json`,都可以轻松实现 JSON 数组的序列化。推荐优先考虑 `Newtonsoft.Json`,因为它支持更多高级特性并具有更好的性能表现。
阅读全文
相关推荐


















