ÄãµÄλÖãºÁã¶È > ¸ü¶à·¢ÏÖ > JSON.NET¶ÔÏóÐòÁл¯Ê¾Àý½Ì³Ì
JSON.NET¶ÔÏóÐòÁл¯Ê¾Àý½Ì³Ì¸ü¶à·¢ÏÖ admin 1¸öÔÂǰ (08-24) 264ä¯ÀÀ
JSON×÷ΪһÖÖÇáÁ¿¼¶µÄÊý¾Ý½»»»¸ñʽ£¬¼òµ¥Áé»î£¬±»ºÜ¶àϵͳÓÃÀ´Êý¾Ý½»»¥£¬×÷ΪһÃû.NET¿ª·¢ÈËÔ±£¬JSON.NETÎÞÒÉÊÇ×îºÃµÄÐòÁл¯¿ò¼Ü£¬Ö§³ÖXMLºÍJSONÐòÁл¯£¬¸ßÐÔÄÜ£¬Ãâ·Ñ¿ªÔ´£¬Ö§³ÖLINQ²éѯ¡£Ä¿Ç°Òѱ»Î¢Èí¼¯³ÉÓÚwebapi¿ò¼ÜÖ®ÖУ¬Òò´Ë£¬ÊìÁ·ÕÆÎÕJSON.NETÏàµ±ÖØÒª£¬ÕâÆªÎÄÕÂÊÇÁã¶È²Î¿¼¹ÙÍøÕûÀíµÄʾÀý£¬Í¨¹ýÕâЩʾÀý£¬¿ÉÒÔÈ«ÃæÁ˽âJSON.NETÌṩµÄ¹¦ÄÜ¡£
ÓëÆäËüÈοò¼ÜÒ»Ñù£¬ÒªÊ¹ÓÃJSON.NET¿ò¼Ü£¬Ê×ÏÈÐèÒªÔÚÄúµÄÏîÄ¿ÖÐÒýÓÃËü£¬¿ò¼Ü¿ÉÒÔµã»÷ÕâÀïµ½GITHUB¿ªÔ´ÉçÇøÏÂÔØ£¬È»ºó¸ù¾ÝÄúÏîÄ¿µÄ°æ±¾Ö±½ÓÒýÓÃnewtonsoft.json.dll¼´¿É£¬¸ü¿ì½ÝµÄ·½·¨ÊÇͨ¹ýNUGETÌṩµÄ°ü¹ÜÀíÆ÷À´½øÐа²×°£¬°²×°·½Ê½ÈçÏÂËùʾ¡£´ò¿ªVisualStudio2013£¬µ¥»÷¡¼¹¤¾ß¡½£¬ÔÚ¡¼NuGet³ÌÐò°ü¹ÜÀíÆ÷¡½²Ëµ¥ÏÂÑ¡ÖС¼³ÌÐò°ü¹ÜÀíÆ÷¿ØÖÆÌ¨¡½£¬ÔÚ¿ØÖÆÌ¨ÊäÈëÒÔÏÂÃüÁîºó£¬»Ø³µ¼´¿É×Ô¶¯°²×°×îа档
Install-Package Newtonsoft.JsonJSON.NET¿ò¼Ü°²×°Íê³Éºó£¬¾Í¿ÉÒÔÔÚÄúµÄ³ÌÐòÖÐʹÓÃËü£¬ÏÂÃæ¾ÍÊÇÁã¶ÈÌṩµÄJSON.NETʹÓÃʾÀý£¬ÆäÖÐÂÌÉ«´úÂë±íʾʾÀýµÄÊä³ö½á¹û£¬ÎªÁ˱ãÓÚÔĶÁ£¬ÎÒÃÇͨ¹ýFormatting.Indented½«´úÂë¸ñʽ»¯Êä³ö¡£
1¡¢Ê¹ÓÃJSON.NETÐòÁл¯¶ÔÏó public class Account { ; } ; } ; } ; } } Account { Email = "james@example.com", Active = true, CreatedDate = .Utc), Roles = } }; .Indented); Console.WriteLine(json); { "Email": "james@example.com", "Active": true, "CreatedDate": "2013-01-20T00:00:00Z", "Roles": [ "User", "Admin" ] } 2¡¢Ê¹ÓÃJSON.NETÐòÁл¯List¼¯ºÏ }; .SerializeObject(videogames); Console.WriteLine(json); ["Áã¶È","·ÖÏí","±à³ÌÖ®ÃÀ"] 3¡¢Ê¹ÓÃJSON.NETÐòÁл¯dictionary×Öµä , 11926 } }; .Indented); Console.WriteLine(json); { "James": 9001, "Jo": 3474, "Jess": 11926 } 4¡¢½«ÐòÁл¯½á¹û±£´æµ½Ö¸¶¨µÄÎļþ public class Movie { ; } ; } } , Year = 1995 }; )) { (); serializer.Serialize(file, movie); } 5¡¢»ùÓÚö¾ÙÀàÐ͵ÄJsonConvertersת»»Æ÷ > { StringComparison.CurrentCulture, StringComparison.InvariantCulture }; .SerializeObject(stringComparisons); Console.WriteLine(jsonWithoutConverter); [0,2] ()); Console.WriteLine(jsonWithConverter); ["CurrentCulture","InvariantCulture"] ()); CurrentCulture, InvariantCulture 6¡¢Í¨¹ýJRaw½«JSº¯ÊýÐòÁл¯µ½JSONÖÐ public class JavaScriptSettings { ; } ; } } JavaScriptSettings { OnLoadFunction = ), OnUnloadFunction = ) }; .Indented); Console.WriteLine(json); { "OnLoadFunction": OnLoad, "OnUnloadFunction": function(e) { alert(e); } } 7¡¢Ê¹ÓÃJSON.NET·´ÐòÁл¯¶ÔÏó public class Account { ; } ; } ; } ; } } string json = @"{ 'Email': 'james@example.com', 'Active': true, 'CreatedDate': '2013-01-20T00:00:00Z', 'Roles': [ 'User', 'Admin' ] }"; >(json); Console.WriteLine(account.Email); james@example.com 8¡¢Ê¹ÓÃJSON.NET·´ÐòÁл¯List¼¯ºÏ ; >>(json); Starcraft, Halo, Legend of Zelda 9¡¢Ê¹ÓÃJSON.NET·´ÐòÁл¯dictionary×Öµä ; >>(json); 10¡¢ÐòÁл¯varÄäÃûÀàÐÍÓÐʱºò£¬ÎÒÃDz¢²»ÐèÒªÏȶ¨ÒåÒ»¸öÀ࣬ȻºónewÒ»¸ö¶ÔÏóºóÔÙ½øÐÐÐòÁл¯£¬JSON.NETÖ§³ÖÄäÃûÀàÐ͵ÄÐòÁл¯ºÍ·´ÐòÁл¯¡£
}; .SerializeObject(definition); Console.WriteLine(json); { "Name": "Áã¶È±à³Ì", "Site": "www.xcode.me" } }; ; .DeserializeAnonymousType(json, definition); Console.WriteLine(webSite.Name); Áã¶È±à³Ì 11¡¢ÓÃÐÂJSON×Ö·û´®Ìî³äÖ¸¶¨¶ÔÏóµÄÊôÐÔÖµ Account { Email = "james@example.com", Active = true, CreatedDate = .Utc), Roles = } }; ; JsonConvert.PopulateObject(json, account); Console.WriteLine(account.Active); falseÉÏÃæµÄʾÀýÖУ¬account¶ÔÏóµÄActiveÖµÊ×´ÎÉèÖÃΪtrue£¬¿Éͨ¹ýPopulateObject·½·¨Í¨¹ýjson×Ö·û´®ÖØÐÂÌî³äActiveÊôÐÔºÍRolesÊôÐÔ¡£
12¡¢Ê¹ÓÃJSON.NET·´ÐòÁл¯Ê±¿ÉÖ¸¶¨¹¹Ô캯Êý
¡¡