using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; //方法一的引用
using System.Web.Script.Serialization; //方法二的引用
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
#region(一)引用Newtonsoft.Json
//①序列化实体对象
User u = new User()
{
Name = "曹操",
Age = 10,
Sex = "男"
};
string json = JsonConvert.SerializeObject(u);
Console.WriteLine(json);
//{"Name":"曹操","Age":10,"Sex":"男"}
Console.ReadKey();
//②反序列化实体对象
User model = JsonConvert.DeserializeObject<User>(json);
Console.WriteLine(string.Format("姓名:{0},年龄:{1},性别:{2}",model.Name,model.Age,model.Sex));
//姓名:曹操,年龄:10,性别:男
Console.ReadKey();
//③序列化实体对象集合
List<User> ulst = new List<User>()
{
new User {Name="曹操",Age=10,Sex="男" },
new User {Name="刘备",Age=12,Sex="女" },
new User {Name="孙权",Age=13,Sex="男" },
};
string json2 = JsonConvert.SerializeObject(ulst);
Console.WriteLine(json2);
//[{"Name":"曹操","Age":10,"Sex":"男"},{"Name":"刘备","Age":12,"Sex":"女"},{"Name":"孙权","Age":13,"Sex":"男"}]
Console.ReadKey();
//④反序列化实体对象集合
List<User> ulst2 = JsonConvert.DeserializeObject<List<User>>(json2);
foreach (User user in ulst2)
{
Console.WriteLine(string.Format("姓名:{0},年龄:{1},性别:{2}", user.Name, user.Age, user.Sex));
}
//姓名:曹操,年龄:10,性别:男
//姓名:刘备,年龄:12,性别:女
//姓名:孙权,年龄:13,性别:男
Console.ReadKey();
#endregion
#region(二)引用System.Web.Extensions
//①序列化实体对象
User u2 = new User()
{
Name = "曹操",
Age = 10,
Sex = "男"
};
JavaScriptSerializer js = new JavaScriptSerializer();
string json3 = js.Serialize(u2);
Console.WriteLine(json3);
//{"Name":"曹操","Age":10,"Sex":"男"}
Console.ReadKey();
//②反序列化实体对象
User model2 = js.Deserialize<User>(json3);
Console.WriteLine(string.Format("姓名:{0},年龄:{1},性别:{2}", model2.Name, model2.Age, model2.Sex));
//姓名:曹操,年龄:10,性别:男
Console.ReadKey();
#endregion
}
}
//User实体对象
class User
{
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}
}