Windows Phone开发经验谈(5)-Json的序列化和反序列化

 

   wp7默认是支持序列化的..但是在这里给大家推荐一个类库Newtonsoft.Json,现在叫Json.net 下载地址:http://json.codeplex.com/releases/view/87440

    序列化的例子:

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
 string json = JsonConvert.SerializeObject(product);//{//  "Name": "Apple",//  "Expiry": new Date(1230422400000),//  "Price": 3.99,//  "Sizes": [//    "Small",//    "Medium",//    "Large"//  ]//} Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);

 

 

 Linq to json的例子

 

string json = @"{  ""Name"": ""Apple"",  ""Expiry"": new Date(1230422400000),  ""Price"": 3.99,  ""Sizes"": [    ""Small"",    ""Medium"",    ""Large""  ]}"; 
JObject o = JObject.Parse(json);

 string name = (string)o["Name"];// Apple
 JArray sizes = (JArray)o["Sizes"];
 string smallest = (string)sizes[0];// Small

 

  Json.NET DataContractJsonSerializer JavaScriptSerializer
Supports JSON      
Supports BSON      
Supports JSON Schema      
Supports .NET 2.0      
Supports .NET 3.5      
Supports .NET 4.0      
Supports Silverlight      
Supports Windows Phone      
Open Source      
MIT License      
LINQ to JSON      
Thread Safe      
XPath-like JSON query syntax      
Indented JSON support      
Efficient dictionary serialization      
Nonsensical dictionary serialization      
Deserializes IList, IEnumerable, ICollection, IDictionary properties      
Serializes circular references      
Supports serializing objects by reference      
Deserializes polymorphic properties and collections      
Supports including type names with JSON      
Globally customize serialization process      
Supports excluding null values when serializing      
Supports SerializationBinder      
Conditional property serialization      
Includes line number information in errors      
Converts XML to JSON and JSON to XML      
JSON Schema validation      
JSON Schema generation from .NET types      
Camel case JSON property names      
Non-default constructors support      
Serialization error handling      
Supports populating an existing object      
Efficiently serializes byte arrays as base64 text      
Handles NaN, Infinity, -Infinity and undefined      
Handles JavaScript constructors      
Serializes .NET 4.0 dynamic objects      
Serializes ISerializable objects      
Supports serializing enums to their text name      
JSON recursion limit support   *    
Attribute property name customization      
Attribute property order customization      
Attribute property required customization      
Supports ISO8601 dates      
Supports JavaScript constructor dates      
Supports Microsoft AJAX dates      
Unquoted property names support      
Raw JSON support      
Supports reading and writing comments      
Deserializes anonymous types      
Opt-in property serialization      
Opt-out property serialization      
Efficiently stream reading and writing JSON      
Single or double quote JSON content      
Supports overriding a type's serialization      
Supports OnDeserialized, OnSerializing, OnSerialized and OnDeserializing attributes      
Supports serializing private properties      
DataMember attribute support      
MetdataType attribute support      
DefaultValue attribute support      
Serializes DataSets and DataTables      
Serailizes Entity Framework      
Serializes nHibernate      
Case-insensitive property deserialization      

posted on 2012-05-17 16:45  豆浆咖啡  阅读(2476)  评论(0编辑  收藏  举报