1.首先创建一个对象Employee
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace JSONDemo
{
public class Employee
{
public string Name { get; set; }
public Employee Manager { get; set; }
}
}
2.序列化其对象,注意Employee对象中的属性Manager类型是其对象本身类型.当实例化多个对象时,并指定其属性值时,即循环取值(迭代),json1未指定其ReferenceLoopHandling忽略,抛出异常.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using GongHuiNewtonsoft.Json;
namespace JSONDemo
{
class Program
{
static void Main(string[] args)
{
Employee gonghui = new Employee { Name = "Gong Hui" };
Employee jack = new Employee { Name = "Jack" };
gonghui.Manager = jack;
jack.Manager = jack;
//string json1 = JsonConvert.SerializeObject(gonghui, Formatting.Indented);
//Console.WriteLine(json1);//抛出异常
string json2 = JsonConvert.SerializeObject(gonghui, Formatting.Indented, new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
Console.WriteLine(json2);
string json3 = JsonConvert.SerializeObject(jack, Formatting.Indented, new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
Console.WriteLine(json3);
}
}
}
3.运行后的结果
JSON源代码下载地址:http://download.csdn.net/detail/lovegonghui/9342751