2013年6月27日 星期四

Json.Net 轉換 IEnumerable 介面

Json.Net對於IEnumerable介面的處理,同樣是序列化成陣列的格式
首先先宣告個物件以便之後的處理

private class Person
{
    public int id { get; set; }
    public string name { get; set; }
    public DateTime date { get; set; }
}

轉換IEnumerable介面,以List為例
static void Main(string[] args)
{
    // 淮備資料
    List<Person> list1 = new List<Person>()
    {
        new Person()
        {
            id = 1,
            name = "p1",
            date = DateTime.Today.AddDays(-1)

        },
        new Person()
        {
            id = 2,
            name="p2",
            date = DateTime.Today
        },
        new Person()
        {
            id = 3,
            name = "p3",
            date = DateTime.Today.AddDays(1)
        }
    };

    // 序列化
    string jsonString = JsonConvert.SerializeObject(list1);
    Console.WriteLine(jsonString);

    // 反序列化
    List<Person> list2 = JsonConvert.DeserializeObject<List<Person>>(jsonString);
    foreach (var item in list2)
    {
        Console.WriteLine("id:{0}, name:{1}, date:{2}", item.id, item.name, item.date);
    }

    Console.ReadLine();
}

執行結果