在最新版本的.NET中,我们有System.Text.Json
命名空间,不再需要第三方库来处理json。
using System.Text.Json;
使用JsonSerializer
类进行序列化:
var data = GetData();
var json = JsonSerializer.Serialize(data);
并反序列化:
public class Person
{
public string Name { get; set; }
}
...
var person = JsonSerializer.Deserialize<Person>("{\"Name\": \"John\"}");
在其他版本的.NET平台中,有不同的方法,比如使用JavaScriptSerializer
,其中最简单的方法是使用匿名类型,例如:
string json = new JavaScriptSerializer().Serialize(new
{
message = new { text = "test sms" },
endpoints = new [] {"dsdsd", "abc", "123"}
});
另外一种方法是定义一个类来保存这些值,并将该类的实例序列化成JSON字符串。例如,定义这些类:
public class SmsDto
{
public MessageDto message { get; set; }
public List<string> endpoints { get; set; }
}
public class MessageDto
{
public string text { get; set; }
}
并使用它:
var sms = new SmsDto()
{
message = new MessageDto() { text = "test sms" } ,
endpoints = new List<string>() { "dsdsd", "abc", "123" }
}
string json = new JavaScriptSerializer().Serialize(sms);