当我们在C#中处理JSON格式的数据时,我们通常需要将JSON字符串转换为C#对象或者将C#对象序列化为JSON字符串。以下是三种在C#中实现对象与JSON字符串互相转换的方法:
方法一:使用JavaScriptSerializer类
.NET框架提供的JavaScriptSerializer类可以将.NET对象与JSON字符串相互转换。
示例代码如下:
using System.Web.Script.Serialization;
// 定义一个Student类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
// 将JSON字符串转换为C#对象
string json = "{\"Name\":\"Tom\", \"Age\":20}";
JavaScriptSerializer serializer = new JavaScriptSerializer();
Student student = serializer.Deserialize<Student>(json);
// 将C#对象序列化为JSON字符串
student = new Student { Name = "Wendy", Age = 18 };
json = serializer.Serialize(student);
方法二:使用Newtonsoft.Json库
Newtonsoft.Json库是.NET开发中使用最广泛的JSON操作库,可以实现高效的JSON序列化和反序列化。
示例代码如下:
using Newtonsoft.Json;
// 定义一个Student类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
// 将JSON字符串转换为C#对象
string json = "{\"Name\":\"Tom\", \"Age\":20}";
Student student = JsonConvert.DeserializeObject<Student>(json);
// 将C#对象序列化为JSON字符串
student = new Student { Name = "Wendy", Age = 18 };
json = JsonConvert.SerializeObject(student);
方法三:使用Json.NET库
Json.NET库是Json.NET作者自己写的另一种JSON操作库,与Newtonsoft.Json库功能类似,但提供更多的特色功能。
示例代码如下:
using Newtonsoft.Json;
// 定义一个Student类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
// 将JSON字符串转换为C#对象
string json = "{\"Name\":\"Tom\", \"Age\":20}";
JsonSerializer serializer = new JsonSerializer();
Student student = serializer.Deserialize<Student>(new JsonTextReader(new StringReader(json)));
// 将C#对象序列化为JSON字符串
student = new Student { Name = "Wendy", Age = 18 };
StringWriter writer = new StringWriter();
serializer.Serialize(writer, student);
json = writer.ToString();
以上就是在C#中实现对象与JSON字符串互相转换的三种方法,每种方法都可以根据实际情况选择使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中对象与JSON字符串互相转换的三种方式 - Python技术站