黄硕忠,网游之侠义天下下载,承德石油高等专科学校
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 反序列化成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, newtonsoft.json.formatting.indented, //缩进 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, 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 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, 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 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, 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 }"; #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", "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 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, 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" // ] // } } #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", "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 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), 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.category select 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 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>
显示:
序列化对象
表现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 常用使用小结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论