定义合约:
var postContract = new JsonContract<Post>(); postContract.SimpleProperty(p => p.Title); postContract.SimpleProperty(p => p.CreateTime).Converter(new DataTimeConverter());
在这里,DataTimeConverter会将CreateTime属性的时间日期转化为字符串以后再输出。例如:
var post = new Post { Title = "Good day today.", CreateTime = DateTime.Now }; Console.WriteLine(JsonSerializer.SerializeObject(post, postContract)); Console.WriteLine();
便会得到:
{ "Title" : "Good day today.", "CreateTime" : "Sun, 10 Oct 2010 23:12:53 GMT" }
我们可以做得还有更多,例如这里有一个包含复杂属性的Category对象:
public class Category { public string Name { get; set; } public User Author { get; set; } public List<Post> Posts { get; set; } }
我们在定义Category的合约时,则可以用到之前的合约:
var categoryContract = new JsonContract<Category>(); categoryContract.SimpleProperty(p => p.Name); categoryContract.ComplexProperty(p => p.Author).Contract(userContract); categoryContract.ArrayProperty(p => p.Posts).ElementContract(postContract);
那么下面这段代码:
var category = new Category { Name = "Default", Author = new User { UserName = "Jerry", Age = 15 }, Posts = new List<Post> { new Post { Title = "Post 1", CreateTime = new DateTime(2010, 1, 1) }, new Post { Title = "Post 2", CreateTime = new DateTime(2010, 2, 1) }, new Post { Title = "Post 3", CreateTime = new DateTime(2010, 3, 1) } } }; var jsonCategory = JsonSerializer.SerializeObject(category, s_categoryContract); Console.WriteLine(jsonCategory);
出处:老赵点滴
责任编辑:bluehearts
上一页 轻量级JSON映射类库 [2] 下一页 轻量级JSON映射类库 [4]
◎进入论坛网络编程版块参加讨论
|