C#json格式数据转换
时间: 2025-04-07 19:13:30 浏览: 52
### 如何在C#中实现JSON格式的数据转换
在C#中,可以利用 `JsonConvert` 类来进行 JSON 字符串与对象之间的相互转换。以下是详细的说明以及代码示例。
#### 使用 `JsonConvert.DeserializeObject<T>` 进行 JSON 转换为对象
当需要将 JSON 字符串反序列化为指定类型的对象时,可使用以下方法:
```csharp
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
string json = "{\"Name\":\"John\", \"Age\":30}";
Person person = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
```
上述代码展示了如何通过 `JsonConvert.DeserializeObject<T>` 方法将 JSON 字符串解析为自定义类的对象实例[^2]。
---
#### 使用 `JsonConvert.SerializeObject` 实现对象转 JSON 字符串
如果要将一个对象序列化为 JSON 字符串,则可以通过如下方式完成:
```csharp
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Person person = new Person { Name = "Alice", Age = 25 };
string jsonString = JsonConvert.SerializeObject(person, Formatting.Indented);
Console.WriteLine(jsonString);
```
此部分演示了如何借助 `JsonConvert.SerializeObject` 方法将 C# 中的对象转化为易于阅读的 JSON 格式字符串[^3]。
---
#### 泛型方法封装用于动态类型转换
为了提高灵活性并减少重复代码量,还可以创建泛型辅助函数来支持多种数据结构间的互操作性:
```csharp
using System;
using Newtonsoft.Json;
public static T ConvertToObject<T>(this string objJsonStr)
{
try
{
return (T)JsonConvert.DeserializeObject(objJsonStr, typeof(T));
}
catch (Exception ex)
{
throw new InvalidOperationException("Conversion failed.", ex);
}
}
```
调用该扩展方法即可轻松完成任意复杂度的目标模型映射过程。
---
### 总结
以上介绍了三种主要场景下的 C# 和 JSON 的交互手段——直接操作、简单封装及异常捕获机制的最佳实践方案。这些技术能够满足大多数日常开发需求,并且具备良好的可维护性和扩展能力。
阅读全文
相关推荐
















