3.5版本dll下载:http://pan.baidu.com/s/1c0vgNWc
- 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","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\",\"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(),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\",\"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 反序列化成Dictionary
- public 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,//缩进
- new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }
- );
- return included;
- }
- #endregion
- public 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 bool
- public bool Paid { get; set; }
- // null is default value of nullable
- public 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,new Newtonsoft.Json.JsonSerializerSettings { }
- );
- // {
- // "Company": "Acme Ltd.",// "Amount": 50.0,// "Paid": false,// "PaidDate": null,// "FollowUpDays": 30,// "FollowUpEmailAddress": ""
- // }
- string ignored = Newtonsoft.Json.JsonConvert.SerializeObject(
- invoice,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 JSON
- public 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; }
- // ignored
- public 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,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,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 character
- properties =
- properties.Where(p => p.PropertyName.StartsWith(_startingWithChar.ToString())).ToList();
- return properties;
- }
- }
- #endregion
- //...
- }
- }
- #region Serializing Partial JSON Fragment Example
- public class SearchResult
- {
- public string Title { get; set; }
- public string Content { get; set; }
- public string Url { get; set; }
- }
- public string SerializingJsonFragment()
- {
- #region
- string 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,'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
- }";
- #endregion
- Newtonsoft.Json.Linq.JObject googleSearch = Newtonsoft.Json.Linq.JObject.Parse(googleSearchText);
- // get JSON result objects into a list
- List<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 objects
- SearchResult searchResult = Newtonsoft.Json.JsonConvert.DeserializeObject<SearchResult>(x.ToString());
- strb.AppendLine(string.Format(template,searchResult.Title,searchResult.Content,searchResult.Url));
- });
- return strb.ToString();
- }
- #endregion
- #region ShouldSerialize
- public class CC
- {
- public string Name { get; set; }
- public CC Manager { get; set; }
- //http://msdn.microsoft.com/en-us/library/53b8022e.aspx
- public bool ShouldSerializeManager()
- {
- // don't serialize the Manager property if an employee is their own manager
- return (Manager != this);
- }
- }
- public string ShouldSerializeTest()
- {
- //create Employee mike
- CC mike = new CC();
- mike.Name = "Mike Manager";
- //create Employee joe
- CC joe = new CC();
- joe.Name = "Joe Employee";
- joe.Manager = mike; //set joe'Manager = mike
- // mike is his own manager
- // ShouldSerialize will skip this property
- mike.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","Large" }
- };
- string json = Newtonsoft.Json.JsonConvert.SerializeObject(
- product,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 ITraceWriter
- public 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,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"
- // ]
- // }
- }
- #endregion
- public 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 file
- public 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 JObject
- public 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 posts
- orderby p.Title
- select 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","category": "6546"
- },{
- "title": "jokjn","description": "m3214an","category": "hg425"
- },{
- "title": "jon","description": "man","category": "goodman"
- }]
- }
- }
- */
- //Creating JObject
- public 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 posts
- orderby p.Title
- select new Newtonsoft.Json.Linq.JObject(
- new Newtonsoft.Json.Linq.JProperty("title",p.Title),p.Description),p.Link),new Newtonsoft.Json.Linq.JProperty("category",new Newtonsoft.Json.Linq.JArray(
- from c in p.Category
- select new Newtonsoft.Json.Linq.JValue(c)
- )
- )
- )
- )
- )
- )
- )
- );
- return RSS;
- }
- /*
- {
- "channel": {
- "title": "James Newton-King","category": ["j","h","g","j"]
- },"category": ["6","5","4","6"]
- },"category": ["h","2","5"]
- },"category": ["g","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",Category="6546"},new Post{Title="jewron",Description="4546fds",Category="jhgj"},new Post{Title="jokjn",Description="m3214an",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 JArray
- public 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 JArray
- array.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>