您正在查看 "json.net学习笔记" 分类下的文章
2010-12-25 22:28
通常当用到大的Json文档的时候,你可能只对其中的一小个片段信息感兴趣。这种情况下你想把Json.Net转换为.Net 对象就会让人很困扰,因为你必须为Json的整个结果定义一个.Net的类。
使用Json.Net很容易避开这个问题。在把它们传递到Json.Net序列化器之前,你可以使用Linq to Json 提取Json中你想要序列化的一些片段。
string googleSearchText = @"{ ""responseData"": { |
2010-12-25 18:43
当序列化.Net对象为Json对象时经常会遇到的一个问题是:最终的Json包含大量多余的属性和属性值。这个问题在返回Json到客户端时显得特别重要。Json越大意味着需要更大的带宽,使网速变得更慢。
为了解决多余的Json这个问题,Json.Net有一系列内置的选项可以进行调整。
->JsonIgnoreAttribute and DataMemberAttribute
默认情况下,在Json创建的时候Json.Net会包含所有类级别的public属性和字段。添加JsonIgnoreAttribute到属性上,告诉序列化器序列化时跳过它。
public class Car
|
2010-12-25 17:15
IContractResolver接口提供了一种方法去定制序列化器如何去序列化和反序列化.Net对象为Json对象
实现IContractResolver接口,然后为Json序列化器分配一个实例对象,这样你就可以控制对象是否被序列化为Json对象或者Json数组、对象的成员应该被序列化成什么、如何被序列化、及他们被谁调用等。
->DefaultContractResolver
DefaultContractResolver是序列化器默认的解析器,它以虚函数的形式提供了很多扩展功能,可以被覆写(overriden).
->CamelCasePropertyNamesContractRes |
2010-12-20 22:03
CustomCreationConverter是一个在序列化过程中提供自定方式去创建一个对象的Json转换器,一旦对象被创建,它将被序列化器填充值。
public interface IPerson { string FirstName { get; set; } string LastName { get; set; } DateTime BirthDate { get; set; } }
|
2010-12-20 20:47
默认情况下,Json.Net将通过对象的值来序列化它遇到的所有对象。如果工个list包含两个Person引用,这两个引用都指向同一个对象,Json序列化器将输出每一个引用的所有名称和值。
定义类:
public class Person { public DateTime BirthDate { get; set; } public DateTime LastModified { get; set; } public string Name { get; set; |