Welcome 微信登录

首页 / 网页编程 / ASP.NET / Json.net 常用使用小结(推荐)

Json.net 常用使用小结(推荐)

using System;using System.Linq;using System.Collections.Generic;namespace microstore{public interface IPerson{string FirstName{get;set;}string LastName{get;set;}DateTime BirthDate{get;set;}}public class Employee : IPerson{public string FirstName{get;set;}public string LastName{get;set;}public DateTime BirthDate{get;set;}public string Department{get;set;}public string JobTitle{get;set;}}public class PersonConverter : Newtonsoft.Json.Converters.CustomCreationConverter<IPerson>{//重写abstract class CustomCreationConverter<T>的Create方法public override IPerson Create(Type objectType){return new Employee();}}public partial class testjson : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){//if (!IsPostBack)//TestJson();}#region 序列化public string TestJsonSerialize(){Product product = new Product();product.Name = "Apple";product.Expiry = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd hh:mm:ss");product.Price = 3.99M;//product.Sizes = new string[] { "Small", "Medium", "Large" };//string json = Newtonsoft.Json.JsonConvert.SerializeObject(product); //没有缩进输出string json = Newtonsoft.Json.JsonConvert.SerializeObject(product, Newtonsoft.Json.Formatting.Indented);//string json = Newtonsoft.Json.JsonConvert.SerializeObject(//product, //Newtonsoft.Json.Formatting.Indented,//new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }//);return string.Format("<p>{0}</p>", json);}public string TestListJsonSerialize(){Product product = new Product();product.Name = "Apple";product.Expiry = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd hh:mm:ss");product.Price = 3.99M;product.Sizes = new string[] { "Small", "Medium", "Large" };List<Product> plist = new List<Product>();plist.Add(product);plist.Add(product);string json = Newtonsoft.Json.JsonConvert.SerializeObject(plist, Newtonsoft.Json.Formatting.Indented);return string.Format("<p>{0}</p>", json);}#endregion#region 反序列化public string TestJsonDeserialize(){string strjson = "{"Name":"Apple","Expiry":"2014-05-03 10:20:59","Price":3.99,"Sizes":["Small","Medium","Large"]}";Product p = Newtonsoft.Json.JsonConvert.DeserializeObject<Product>(strjson);string template = @"<p><ul><li>{0}</li><li>{1}</li><li>{2}</li><li>{3}</li></ul></p>";return string.Format(template, p.Name, p.Expiry, p.Price.ToString(), string.Join(",", p.Sizes));}public string TestListJsonDeserialize(){string strjson = "{"Name":"Apple","Expiry":"2014-05-03 10:20:59","Price":3.99,"Sizes":["Small","Medium","Large"]}";List<Product> plist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Product>>(string.Format("[{0},{1}]", strjson, strjson));string template = @"<p><ul><li>{0}</li><li>{1}</li><li>{2}</li><li>{3}</li></ul></p>";System.Text.StringBuilder strb = new System.Text.StringBuilder();plist.ForEach(x =>strb.AppendLine(string.Format(template, x.Name, x.Expiry, x.Price.ToString(), string.Join(",", x.Sizes))));return strb.ToString();}#endregion#region 自定义反序列化public string TestListCustomDeserialize(){string strJson = "[ { "FirstName": "Maurice", "LastName": "Moss", "BirthDate": "1981-03-08T00:00Z", "Department": "IT", "JobTitle": "Support" }, { "FirstName": "Jen", "LastName": "Barber", "BirthDate": "1985-12-10T00:00Z", "Department": "IT", "JobTitle": "Manager" } ] ";List<IPerson> people = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IPerson>>(strJson, new PersonConverter());IPerson person = people[0];string template = @"<p><ul><li>当前List<IPerson>[x]对象类型:{0}</li><li>FirstName:{1}</li><li>LastName:{2}</li><li>BirthDate:{3}</li><li>Department:{4}</li><li>JobTitle:{5}</li></ul></p>";System.Text.StringBuilder strb = new System.Text.StringBuilder();people.ForEach(x =>strb.AppendLine(string.Format(template,person.GetType().ToString(),x.FirstName,x.LastName,x.BirthDate.ToString(),((Employee)x).Department,((Employee)x).JobTitle)));return strb.ToString();}#endregion#region 反序列化成Dictionarypublic string TestDeserialize2Dic(){//string json = @"{""key1"":""zhangsan"",""key2"":""lisi""}";//string json = "{"key1":"zhangsan","key2":"lisi"}";string json = "{key1:"zhangsan",key2:"lisi"}";Dictionary<string, string> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(json);string template = @"<li>key:{0},value:{1}</li>";System.Text.StringBuilder strb = new System.Text.StringBuilder();strb.Append("Dictionary<string, string>长度" + dic.Count.ToString() + "<ul>");dic.AsQueryable().ToList().ForEach(x =>{strb.AppendLine(string.Format(template, x.Key, x.Value));});strb.Append("</ul>");return strb.ToString();}#endregion#region NullValueHandling特性public class Movie{public string Name { get; set; }public string Description { get; set; }public string Classification { get; set; }public string Studio { get; set; }public DateTime? ReleaseDate { get; set; }public List<string> ReleaseCountries { get; set; }}/// <summary>/// 完整序列化输出/// </summary>public string CommonSerialize(){Movie movie = new Movie();movie.Name = "Bad Boys III";movie.Description = "It"s no Bad Boys";string included = Newtonsoft.Json.JsonConvert.SerializeObject(movie,Newtonsoft.Json.Formatting.Indented, //缩进new Newtonsoft.Json.JsonSerializerSettings { });return included;}/// <summary>/// 忽略空(Null)对象输出/// </summary>/// <returns></returns>public string IgnoredSerialize(){Movie movie = new Movie();movie.Name = "Bad Boys III";movie.Description = "It"s no Bad Boys";string included = Newtonsoft.Json.JsonConvert.SerializeObject(movie,Newtonsoft.Json.Formatting.Indented, //缩进new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });return included;}#endregionpublic class Product{public string Name { get; set; }public string Expiry { get; set; }public Decimal Price { get; set; }public string[] Sizes { get; set; }}#region DefaultValueHandling默认值public class Invoice{public string Company { get; set; }public decimal Amount { get; set; }// false is default value of boolpublic bool Paid { get; set; }// null is default value of nullablepublic DateTime? PaidDate { get; set; }// customize default values[System.ComponentModel.DefaultValue(30)]public int FollowUpDays { get; set; }[System.ComponentModel.DefaultValue("")]public string FollowUpEmailAddress { get; set; }}public void GG(){Invoice invoice = new Invoice{Company = "Acme Ltd.",Amount = 50.0m,Paid = false,FollowUpDays = 30,FollowUpEmailAddress = string.Empty,PaidDate = null};string included = Newtonsoft.Json.JsonConvert.SerializeObject(invoice,Newtonsoft.Json.Formatting.Indented,new Newtonsoft.Json.JsonSerializerSettings { });// {//"Company": "Acme Ltd.",//"Amount": 50.0,//"Paid": false,//"PaidDate": null,//"FollowUpDays": 30,//"FollowUpEmailAddress": ""// }string ignored = Newtonsoft.Json.JsonConvert.SerializeObject(invoice,Newtonsoft.Json.Formatting.Indented,new Newtonsoft.Json.JsonSerializerSettings { DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore });// {//"Company": "Acme Ltd.",//"Amount": 50.0// }}#endregion#region JsonIgnoreAttribute and DataMemberAttribute 特性public string OutIncluded(){Car car = new Car{Model = "zhangsan",Year = DateTime.Now,Features = new List<string> { "aaaa", "bbbb", "cccc" },LastModified = DateTime.Now.AddDays(5)};return Newtonsoft.Json.JsonConvert.SerializeObject(car, Newtonsoft.Json.Formatting.Indented);}public string OutIncluded2(){Computer com = new Computer{Name = "zhangsan",SalePrice = 3999m,Manufacture = "red",StockCount = 5,WholeSalePrice = 34m,NextShipmentDate = DateTime.Now.AddDays(5)};return Newtonsoft.Json.JsonConvert.SerializeObject(com, Newtonsoft.Json.Formatting.Indented);}public class Car{// included in JSONpublic string Model { get; set; }public DateTime Year { get; set; }public List<string> Features { get; set; }// ignored[Newtonsoft.Json.JsonIgnore]public DateTime LastModified { get; set; }}//在nt3.5中需要添加System.Runtime.Serialization.dll引用[System.Runtime.Serialization.DataContract]public class Computer{// included in JSON[System.Runtime.Serialization.DataMember]public string Name { get; set; }[System.Runtime.Serialization.DataMember]public decimal SalePrice { get; set; }// ignoredpublic string Manufacture { get; set; }public int StockCount { get; set; }public decimal WholeSalePrice { get; set; }public DateTime NextShipmentDate { get; set; }}#endregion#region IContractResolver特性public class Book{public string BookName { get; set; }public decimal BookPrice { get; set; }public string AuthorName { get; set; }public int AuthorAge { get; set; }public string AuthorCountry { get; set; }}public void KK(){Book book = new Book{BookName = "The Gathering Storm",BookPrice = 16.19m,AuthorName = "Brandon Sanderson",AuthorAge = 34,AuthorCountry = "United States of America"};string startingWithA = Newtonsoft.Json.JsonConvert.SerializeObject(book, Newtonsoft.Json.Formatting.Indented,new Newtonsoft.Json.JsonSerializerSettings { ContractResolver = new DynamicContractResolver("A") });// {//"AuthorName": "Brandon Sanderson",//"AuthorAge": 34,//"AuthorCountry": "United States of America"// }string startingWithB = Newtonsoft.Json.JsonConvert.SerializeObject(book,Newtonsoft.Json.Formatting.Indented,new Newtonsoft.Json.JsonSerializerSettings { ContractResolver = new DynamicContractResolver("B") });// {//"BookName": "The Gathering Storm",//"BookPrice": 16.19// }}public class DynamicContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver{private readonly char _startingWithChar;public DynamicContractResolver(char startingWithChar){_startingWithChar = startingWithChar;}protected override IList<Newtonsoft.Json.Serialization.JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization){IList<Newtonsoft.Json.Serialization.JsonProperty> properties = base.CreateProperties(type, memberSerialization);// only serializer properties that start with the specified characterproperties =properties.Where(p => p.PropertyName.StartsWith(_startingWithChar.ToString())).ToList();return properties;}}#endregion//...}}#region Serializing Partial JSON Fragment Examplepublic class SearchResult{public string Title { get; set; }public string Content { get; set; }public string Url { get; set; }}public string SerializingJsonFragment(){#regionstring googleSearchText = @"{"responseData": {"results": [{"GsearchResultClass": "GwebSearch","unescapedUrl": "http://en.wikipedia.org/wiki/Paris_Hilton","url": "http://en.wikipedia.org/wiki/Paris_Hilton","visibleUrl": "en.wikipedia.org","cacheUrl": "http://www.google.com/search?q=cache:TwrPfhd22hYJ:en.wikipedia.org","title": "<b>Paris Hilton</b> - Wikipedia, the free encyclopedia","titleNoFormatting": "Paris Hilton - Wikipedia, the free encyclopedia","content": "[1] In 2006, she released her debut album..."},{"GsearchResultClass": "GwebSearch","unescapedUrl": "http://www.imdb.com/name/nm0385296/","url": "http://www.imdb.com/name/nm0385296/","visibleUrl": "www.imdb.com","cacheUrl": "http://www.google.com/search?q=cache:1i34KkqnsooJ:www.imdb.com","title": "<b>Paris Hilton</b>","titleNoFormatting": "Paris Hilton","content": "Self: Zoolander. Socialite <b>Paris Hilton</b>..."}],"cursor": {"pages": [{"start": "0","label": 1},{"start": "4","label": 2},{"start": "8","label": 3},{"start": "12","label": 4}],"estimatedResultCount": "59600000","currentPageIndex": 0,"moreResultsUrl": "http://www.google.com/search?oe=utf8&ie=utf8..."}},"responseDetails": null,"responseStatus": 200}";#endregionNewtonsoft.Json.Linq.JObject googleSearch = Newtonsoft.Json.Linq.JObject.Parse(googleSearchText);// get JSON result objects into a listList<Newtonsoft.Json.Linq.JToken> listJToken = googleSearch["responseData"]["results"].Children().ToList();System.Text.StringBuilder strb = new System.Text.StringBuilder();string template = @"<ul><li>Title:{0}</li><li>Content: {1}</li><li>Url:{2}</li></ul>";listJToken.ForEach(x =>{// serialize JSON results into .NET objectsSearchResult searchResult = Newtonsoft.Json.JsonConvert.DeserializeObject<SearchResult>(x.ToString());strb.AppendLine(string.Format(template, searchResult.Title, searchResult.Content, searchResult.Url));});return strb.ToString();}#endregion#region ShouldSerializepublic class CC{public string Name { get; set; }public CC Manager { get; set; }//http://msdn.microsoft.com/en-us/library/53b8022e.aspxpublic bool ShouldSerializeManager(){// don"t serialize the Manager property if an employee is their own managerreturn (Manager != this);}}public string ShouldSerializeTest(){//create Employee mikeCC mike = new CC();mike.Name = "Mike Manager";//create Employee joeCC joe = new CC();joe.Name = "Joe Employee";joe.Manager = mike; //set joe"Manager = mike// mike is his own manager// ShouldSerialize will skip this propertymike.Manager = mike;return Newtonsoft.Json.JsonConvert.SerializeObject(new[] { joe, mike }, Newtonsoft.Json.Formatting.Indented);}#endregion//驼峰结构输出(小写打头,后面单词大写)public string JJJ(){Product product = new Product{Name = "Widget",Expiry = DateTime.Now.ToString(),Price = 9.99m,Sizes = new[] { "Small", "Medium", "Large" }};string json = Newtonsoft.Json.JsonConvert.SerializeObject(product,Newtonsoft.Json.Formatting.Indented,new Newtonsoft.Json.JsonSerializerSettings { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() });return json;//{// "name": "Widget",// "expiryDate": "2010-12-20T18:01Z",// "price": 9.99,// "sizes": [//"Small",//"Medium",//"Large"// ]//}}#region ITraceWriterpublic class Staff{public string Name { get; set; }public List<string> Roles { get; set; }public DateTime StartDate { get; set; }}public void KKKK(){Staff staff = new Staff();staff.Name = "Arnie Admin";staff.Roles = new List<string> { "Administrator" };staff.StartDate = new DateTime(2000, 12, 12, 12, 12, 12, DateTimeKind.Utc);Newtonsoft.Json.Serialization.ITraceWriter traceWriter = new Newtonsoft.Json.Serialization.MemoryTraceWriter();Newtonsoft.Json.JsonConvert.SerializeObject(staff,new Newtonsoft.Json.JsonSerializerSettings{TraceWriter = traceWriter,Converters = { new Newtonsoft.Json.Converters.JavaScriptDateTimeConverter() }});Console.WriteLine(traceWriter);// 2012-11-11T12:08:42.761 Info Started serializing Newtonsoft.Json.Tests.Serialization.Staff. Path "".// 2012-11-11T12:08:42.785 Info Started serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path "StartDate".// 2012-11-11T12:08:42.791 Info Finished serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path "StartDate".// 2012-11-11T12:08:42.797 Info Started serializing System.Collections.Generic.List`1[System.String]. Path "Roles".// 2012-11-11T12:08:42.798 Info Finished serializing System.Collections.Generic.List`1[System.String]. Path "Roles".// 2012-11-11T12:08:42.799 Info Finished serializing Newtonsoft.Json.Tests.Serialization.Staff. Path "".// 2013-05-18T21:38:11.255 Verbose Serialized JSON: // {//"Name": "Arnie Admin",//"StartDate": new Date(// 976623132000//),//"Roles": [// "Administrator"//]// }}#endregionpublic string TestReadJsonFromFile(){Linq2Json l2j = new Linq2Json();Newtonsoft.Json.Linq.JObject jarray = l2j.GetJObject4();return jarray.ToString();}using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace microstore{public class Linq2Json{#region GetJObject//Parsing a JSON Object from text public Newtonsoft.Json.Linq.JObject GetJObject(){string json = @"{ CPU: "Intel", Drives: ["DVD read/writer","500 gigabyte hard drive" ]}";Newtonsoft.Json.Linq.JObject jobject = Newtonsoft.Json.Linq.JObject.Parse(json);return jobject;}/** //example:=> * Linq2Json l2j = new Linq2Json();Newtonsoft.Json.Linq.JObject jobject = l2j.GetJObject2(Server.MapPath("json/Person.json"));//return Newtonsoft.Json.JsonConvert.SerializeObject(jobject, Newtonsoft.Json.Formatting.Indented);return jobject.ToString(); *///Loading JSON from a filepublic Newtonsoft.Json.Linq.JObject GetJObject2(string jsonPath){using (System.IO.StreamReader reader = System.IO.File.OpenText(jsonPath)){Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.Linq.JToken.ReadFrom(new Newtonsoft.Json.JsonTextReader(reader));return jobject;}}//Creating JObjectpublic Newtonsoft.Json.Linq.JObject GetJObject3(){List<Post> posts = GetPosts();Newtonsoft.Json.Linq.JObject jobject = Newtonsoft.Json.Linq.JObject.FromObject(new{channel = new{title = "James Newton-King",link = "http://james.newtonking.com",description = "James Newton-King"s blog.",item =from p in postsorderby p.Titleselect new{title = p.Title,description = p.Description,link = p.Link,category = p.Category}}});return jobject;}/*{"channel": {"title": "James Newton-King","link": "http://james.newtonking.com","description": "James Newton-King"s blog.","item": [{"title": "jewron","description": "4546fds","link": "http://www.baidu.com","category": "jhgj"},{"title": "jofdsn","description": "mdsfan","link": "http://www.baidu.com","category": "6546"},{"title": "jokjn","description": "m3214an","link": "http://www.baidu.com","category": "hg425"},{"title": "jon","description": "man","link": "http://www.baidu.com","category": "goodman"}]}} *///Creating JObjectpublic Newtonsoft.Json.Linq.JObject GetJObject4(){List<Post> posts = GetPosts();Newtonsoft.Json.Linq.JObject rss = new Newtonsoft.Json.Linq.JObject(new Newtonsoft.Json.Linq.JProperty("channel",new Newtonsoft.Json.Linq.JObject(new Newtonsoft.Json.Linq.JProperty("title", "James Newton-King"),new Newtonsoft.Json.Linq.JProperty("link", "http://james.newtonking.com"),new Newtonsoft.Json.Linq.JProperty("description", "James Newton-King"s blog."),new Newtonsoft.Json.Linq.JProperty("item",new Newtonsoft.Json.Linq.JArray(from p in postsorderby p.Titleselect new Newtonsoft.Json.Linq.JObject(new Newtonsoft.Json.Linq.JProperty("title", p.Title),new Newtonsoft.Json.Linq.JProperty("description", p.Description),new Newtonsoft.Json.Linq.JProperty("link", p.Link),new Newtonsoft.Json.Linq.JProperty("category",new Newtonsoft.Json.Linq.JArray(from c in p.Categoryselect new Newtonsoft.Json.Linq.JValue(c)))))))));return rss;}/*{"channel": {"title": "James Newton-King","link": "http://james.newtonking.com","description": "James Newton-King"s blog.","item": [{"title": "jewron","description": "4546fds","link": "http://www.baidu.com","category": ["j", "h", "g", "j"]},{"title": "jofdsn","description": "mdsfan","link": "http://www.baidu.com","category": ["6", "5", "4", "6"]},{"title": "jokjn","description": "m3214an","link": "http://www.baidu.com","category": ["h", "g", "4", "2", "5"]},{"title": "jon","description": "man","link": "http://www.baidu.com","category": ["g", "o", "o", "d", "m", "a", "n"]}]}} */public class Post{public string Title { get; set; }public string Description { get; set; }public string Link { get; set; }public string Category { get; set; }}private List<Post> GetPosts(){List<Post> listp = new List<Post>(){new Post{Title="jon",Description="man",Link="http://www.baidu.com",Category="goodman"},new Post{Title="jofdsn",Description="mdsfan",Link="http://www.baidu.com",Category="6546"},new Post{Title="jewron",Description="4546fds",Link="http://www.baidu.com",Category="jhgj"},new Post{Title="jokjn",Description="m3214an",Link="http://www.baidu.com",Category="hg425"}};return listp;}#endregion#region GetJArray/* * //example:=> * Linq2Json l2j = new Linq2Json();Newtonsoft.Json.Linq.JArray jarray = l2j.GetJArray();return Newtonsoft.Json.JsonConvert.SerializeObject(jarray, Newtonsoft.Json.Formatting.Indented);//return jarray.ToString(); *///Parsing a JSON Array from text public Newtonsoft.Json.Linq.JArray GetJArray(){string json = @"[ "Small", "Medium", "Large"]";Newtonsoft.Json.Linq.JArray jarray = Newtonsoft.Json.Linq.JArray.Parse(json);return jarray;}//Creating JArraypublic Newtonsoft.Json.Linq.JArray GetJArray2(){Newtonsoft.Json.Linq.JArray array = new Newtonsoft.Json.Linq.JArray();Newtonsoft.Json.Linq.JValue text = new Newtonsoft.Json.Linq.JValue("Manual text");Newtonsoft.Json.Linq.JValue date = new Newtonsoft.Json.Linq.JValue(new DateTime(2000, 5, 23));//add to JArrayarray.Add(text);array.Add(date);return array;}#endregion//待续...}}

测试效果:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testjson.aspx.cs" Inherits="microstore.testjson" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><title></title><style type="text/css">body{ font-family:Arial,微软雅黑; font-size:14px;}a{ text-decoration:none; color:#333;}a:hover{ text-decoration:none; color:#f00;}</style></head><body><form id="form1" runat="server"><h3>序列化对象</h3>表现1:<br /><%=TestJsonSerialize()%><%=TestListJsonSerialize() %>表现2:<br /><%=TestListJsonSerialize2() %><hr /><h3>反序列化对象</h3><p>单个对象</p><%=TestJsonDeserialize() %><p>多个对象</p><%=TestListJsonDeserialize() %><p>反序列化成数据字典Dictionary</p><%=TestDeserialize2Dic() %><hr /><h3>自定义反序列化</h3><%=TestListCustomDeserialize()%><hr /><h3>序列化输出的忽略特性</h3>NullValueHandling特性忽略=><br /><%=CommonSerialize() %><br /><%=IgnoredSerialize()%><br /><br />属性标记忽略=><br /><%=OutIncluded() %><br /><%=OutIncluded2() %><hr /><h3>Serializing Partial JSON Fragments</h3><%=SerializingJsonFragment() %><hr /><h3>ShouldSerialize</h3><%=ShouldSerializeTest() %><br /><%=JJJ() %><br /><br /><%=TestReadJsonFromFile() %></form></body></html>

显示:

序列化对象

表现1:

 

{ "Name": "Apple", "Expiry": "2014-05-04 02:08:58", "Price": 3.99, "Sizes": null }[ { "Name": "Apple", "Expiry": "2014-05-04 02:08:58", "Price": 3.99, "Sizes": [ "Small", "Medium", "Large" ] }, { "Name": "Apple", "Expiry": "2014-05-04 02:08:58", "Price": 3.99, "Sizes": [ "Small", "Medium", "Large" ] } ]

 表现2:

[ { "Name": "Apple", "Expiry": "2014-05-04 02:08:58", "Price": 3.99, "Sizes": [ "Small", "Medium", "Large" ] }, { "Name": "Apple", "Expiry": "2014-05-04 02:08:58", "Price": 3.99, "Sizes": [ "Small", "Medium", "Large" ] } ]

反序列化对象

单个对象

•Apple
•2014-05-03 10:20:59
•3.99
•Small,Medium,Large

多个对象

•Apple
•2014-05-03 10:20:59
•3.99
•Small,Medium,Large

•Apple
•2014-05-03 10:20:59
•3.99
•Small,Medium,Large

反序列化成数据字典Dictionary

Dictionary长度2
•key:key1,value:zhangsan
•key:key2,value:lisi

---------------------------------------------------------------

自定义反序列化

•当前List[x]对象类型:microstore.Employee
•FirstName:Maurice
•LastName:Moss
•BirthDate:1981-3-8 0:00:00
•Department:IT
•JobTitle:Support


•当前List[x]对象类型:microstore.Employee
•FirstName:Jen
•LastName:Barber
•BirthDate:1985-12-10 0:00:00
•Department:IT
•JobTitle:Manager

-------------------------------------------------------------

序列化输出的忽略特性
NullValueHandling特性忽略=>
{ "Name": "Bad Boys III", "Description": "It"s no Bad Boys", "Classification": null, "Studio": null, "ReleaseDate": null, "ReleaseCountries": null }
{ "Name": "Bad Boys III", "Description": "It"s no Bad Boys" }

属性标记忽略=>
{ "Model": "zhangsan", "Year": "2014-05-01T02:08:58.671875+08:00", "Features": [ "aaaa", "bbbb", "cccc" ] }
{ "Name": "zhangsan", "SalePrice": 3999.0 }
-----------------------------------------------------------------

Serializing Partial JSON Fragments
•Title:Paris Hilton - Wikipedia, the free encyclopedia
•Content: [1] In 2006, she released her debut album...
•Url:http://en.wikipedia.org/wiki/Paris_Hilton
•Title:Paris Hilton
•Content: Self: Zoolander. Socialite Paris Hilton...
•Url:http://www.imdb.com/name/nm0385296/

--------------------------------------------------------------------------------

ShouldSerialize
[ { "Name": "Joe Employee", "Manager": { "Name": "Mike Manager" } }, { "Name": "Mike Manager" } ]
{ "name": "Widget", "expiry": "2014-5-1 2:08:58", "price": 9.99, "sizes": [ "Small", "Medium", "Large" ] }

{ "channel": { "title": "James Newton-King", "link": "http://james.newtonking.com", "description": "James Newton-King"s blog.", "item": [ { "title": "jewron", "description": "4546fds", "link": "http://www.baidu.com", "category": [ "j", "h", "g", "j" ] }, { "title": "jofdsn", "description": "mdsfan", "link": "http://www.baidu.com", "category": [ "6", "5", "4", "6" ] }, { "title": "jokjn", "description": "m3214an", "link": "http://www.baidu.com", "category": [ "h", "g", "4", "2", "5" ] }, { "title": "jon", "description": "man", "link": "http://www.baidu.com", "category": [ "g", "o", "o", "d", "m", "a", "n" ] } ] } }

以上这篇Json.net 常用使用小结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。