{"id":8919,"date":"2014-05-30T00:57:04","date_gmt":"2014-05-29T16:57:04","guid":{"rendered":"http:\/\/bohu.net\/blog\/?p=8919"},"modified":"2014-05-30T00:57:04","modified_gmt":"2014-05-29T16:57:04","slug":"json-net-%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96-%e5%a4%9a%e5%b1%82%e6%ac%a1-%e6%b3%9b%e5%9e%8b-%e5%a4%8d%e6%9d%82%e5%af%b9%e8%b1%a1-json%ef%bc%88%e5%a6%82list%ef%bc%89%e5%88%b0%e6%95%b0%e6%8d%ae","status":"publish","type":"post","link":"https:\/\/www.bohu.net\/blog\/8919\/","title":{"rendered":"Json.NET \u53cd\u5e8f\u5217\u5316  \u591a\u5c42\u6b21 \u6cdb\u578b \u590d\u6742\u5bf9\u8c61 json\uff08\u5982List\uff09\u5230\u6570\u636e\u5b9e\u4f53\u5bf9\u8c61"},"content":{"rendered":"<p>\u505a\u4e86\u4e00\u5929\u6709\u5173\u4e8eJSON\u7684\u5de5\u4f5c\uff0c\u89e3\u6790\u4e3aJSON\u96be\u5ea6\u5230\u4e0d\u5927\uff0c\u7528.Net\u4e2d\u5fae\u8f6f\u81ea\u5df1\u7684\u65b9\u6cd5\u4e5f\u5f88\u597d\u7528\u3002<\/p>\n<p>\u591a\u5c42\u6b21\u6cdb\u578b\u590d\u6742\u5bf9\u8c61\uff08\u4e0d\u662f\u7b80\u5355\u7684 List&lt;T&gt;\u00a0\u800c\u662f \u00a0List&lt;&lt;List&lt;T&gt;&gt;&gt;\uff09\u5230\u6570\u636e\u5b9e\u4f53\u5bf9\u8c61\uff0c\u82b1\u4e86\u5927\u534a\u5929\u65f6\u95f4\u4ece\u4e0b\u5348\u5230\u665a\u4e0a\uff0c\u4e00\u76f4\u7814\u7a76\u5230\u5feb\u51cc\u6668\u3002\u3002\u3002<\/p>\n<p>\u6700\u540e\u8fd8\u662f\u653e\u5f03\u5fae\u8f6f\u7684\u65b9\u6cd5\u3002\u4f7f\u7528\u4e86 Json.NET \u7684 Newtonsoft.Json.dll \u6765\u53cd\u5e8f\u5217\u5316\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u968f\u4fbf\u63a8\u8350\u4e00\u4e2a\u7f51\u7ad9\uff1a \u5728\u7ebfJSON\u6821\u9a8c\u683c\u5f0f\u5316\u5de5\u5177(K JSON) &#8211; json\u89e3\u6790,json\u683c\u5f0f\u5316,json \u5728\u7ebf\u6821\u9a8c\u00a0 http:\/\/www.kjson.com\/<\/p>\n<p>\u53ef\u4ee5\u628a\u8981\u53cd\u89e3\u6790\u7684json\u653e\u8fdb\u53bb\u6548\u9a8c\u4e00\u4e0b\uff0c\u907f\u514d\u9519\u8bef\u683c\u5f0f\uff0c\u6bd4\u5982\u6211\u4eca\u5929\u9047\u5230\u51e0\u6b21\u6536\u5230\u7684 json \u538b\u6839\u5c31\u662f\u683c\u5f0f\u4e0d\u6b63\u786e\u7684json &#8230; \u975e\u5e38\u803d\u8bef\u65f6\u95f4<\/p>\n<p>&nbsp;<\/p>\n<p>\u4e0b\u9762\u7ed9\u4e2a\u4f8b\u5b50\u4f9b\u53c2\u8003\uff1a<\/p>\n<p>( \u4f8b\u5b50\u662f\u5728Handler1.ashx\u4e2d\u505a\u7684\uff0c\u9996\u5148\u5f15\u7528 \u201cusing Newtonsoft.Json;\u201d)<\/p>\n<pre class=\"brush:csharp\">using System;\nusing System.Collections.Generic;\nusing System.Web;\nusing System.IO;\nusing Newtonsoft.Json;\n\nnamespace WebApp1\n{\n    \/\/\/ &lt;summary&gt;\n    \/\/\/ Handler1 \u7684\u6458\u8981\u8bf4\u660e\n    \/\/\/ &lt;\/summary&gt;\n    public class Handler1 : IHttpHandler\n    {\n        public void ProcessRequest(HttpContext context)\n        {\n            string strJson = @\"{\n                                    'success': true,\n                                    'Object': {\n                                        'ID': -1,\n                                        'MoveID': 'D09-242',\n                                        'EX_Unit': 00,\n                                        'In_Unit': 00,\n                                        'Remark': 'OK',\n                                        'Detail': [\n                                            {\n                                                'ID': 1,\n                                                'M_ID': null,\n                                                'DVID': '11',\n                                                'DVName': 'aa0',\n                                                'DVType': null\n                                            },\n                                            {\n                                                'ID': 2,\n                                                'M_ID': null,\n                                                'DVID': '22',\n                                                'DVName': 'aa1',\n                                                'DVType': null\n                                            },\n                                            {\n                                                'ID': 3,\n                                                'M_ID': null,\n                                                'DVID': '33',\n                                                'DVName': 'aa2',\n                                                'DVType': null\n                                            }\n                                        ]\n                                    },\n                                    'msg': '\u6210\u529f'\n                                }\";\n            \/\/\/\u5927{}\u5185 JSONObject \u6570\u636e, \u6700\u5916\u5c42\n            JSONObject&lt;MoveInfo&lt;MoveDetailInfo&gt;&gt; obj = Newtonsoft.Json.JsonConvert.DeserializeObject&lt;JSONObject&lt;MoveInfo&lt;MoveDetailInfo&gt;&gt;&gt;(strJson);\n            string msg = obj.msg;\n            string success = obj.success.ToString();\n\n            \/\/\/'Object'\u662f\u5b9e\u4f53\u5bf9\u8c61\u7c7b\"MoveInfo\"\u7684\u5b9e\u4f53\u7c7b\u7684\u6570\u636e\n            MoveInfo&lt;MoveDetailInfo&gt; info = obj.Object;\n            int Mv_id1 = info.ID;   \/\/\u53ef\u4ee5\u76f4\u63a5\u8d4b\u503c\u7ed9MoveInfo\u7684\u5bf9\u8c61\u83b7\u53d6\u5230\u503c\n            int Mv_id2 = obj.Object.ID; \/\/\u8fd8\u53ef\u4ee5\u7528\u4e0a\u5c42\u7684Object.ID\u83b7\u53d6\u5230\u503c\n\n            \/\/\/info.Detail \u6216 obj.Object.Detail \u90fd\u662f\u5b9e\u4f53\u5bf9\u8c61\u7c7b\"MoveDetailInfo\"\u7684\u5b9e\u4f53\u7c7b\u7684\u6570\u636e\n            string DVName1 = \"\";\n            string DVName2 = \"\";\n            string DVName3 = \"\";\n\n            DVName1 = obj.Object.Detail[0].DVName;      \/\/\u65b9\u6cd51: \u4ece\u6700\u4e0a\u6b21\u5bf9\u8c61\u5b9e\u4f53\u4e2d\u53d6\u5b50\u5c5e\u6027\n\n            foreach(MoveDetailInfo mvinfo in info.Detail)\n                DVName2 += mvinfo.DVName;       \/\/\u65b9\u6cd52: \u8fed\u4ee3\u4e0a\u5c42 info.Detail \u5bf9\u8c61\"MoveDetailInfo\"\u83b7\u53d6\u5c5e\u6027\n\n            MoveDetailInfo dvinfo =  info.Detail[0];\n            DVName3 = dvinfo.DVName;        \/\/\u65b9\u6cd53: \u518d\u8d4b\u503c\u7ed9MoveDetailInfo\u5bf9\u8c61\u7c7b\u540e\u83b7\u53d6\n\n            context.Response.ContentType = \"text\/plain\";\n            context.Response.Write(string.Format(\"0;{0}\\r1:{1};\\r2:{2};\", DVName1, DVName2, DVName3));\n        }\n\n        public bool IsReusable\n        {\n            get\n            {\n                return false;\n            }\n        }\n    }\n\n    public class JSONObject&lt;T&gt;\n    {\n        private bool _success;\n        \/\/\/ &lt;summary&gt;\n        \/\/\/ \u662f\u5426\u6210\u529f\n        \/\/\/ &lt;\/summary&gt;\n        public bool success\n        {\n            get { return _success; }\n            set { _success = value; }\n        }\n\n        private T _Object;\n        \/\/\/ &lt;summary&gt;\n        \/\/\/ \u4e1a\u52a1\u5b9e\u4f53\u5bf9\u8c61\n        \/\/\/ &lt;\/summary&gt;\n        public T Object\n        {\n            get { return _Object; }\n            set { _Object = value; }\n        }\n\n        private string _msg;\n        \/\/\/ &lt;summary&gt;\n        \/\/\/ \u6d88\u606f\n        \/\/\/ &lt;\/summary&gt;\n        public string msg\n        {\n            get { return _msg; }\n            set { _msg = value; }\n        }\n    }\n\n    \/\/\/ &lt;summary&gt;\n    \/\/\/ MoveInfo \u8c03\u62e8\u5355\n    \/\/\/ &lt;\/summary&gt;\n    public class MoveInfo&lt;T&gt;\n    {\n        private int _ID;\n        public int ID\n        {\n            get { return _ID; }\n            set { _ID = value; }\n        }\n\n        private string _MoveID;\n        public string MoveID\n        {\n            get { return _MoveID; }\n            set { _MoveID = value; }\n        }\n\n        private int _EX_Unit;\n        public int EX_Unit\n        {\n            get { return _EX_Unit; }\n            set { _EX_Unit = value; }\n        }\n\n        private int _In_Unit;\n        public int In_Unit\n        {\n            get { return _In_Unit; }\n            set { _In_Unit = value; }\n        }\n\n        private List&lt;MoveDetailInfo&gt; _Detail;\n        public List&lt;MoveDetailInfo&gt; Detail\n        {\n            get { return _Detail; }\n            set { _Detail = value; }\n        }\n    }\n\n    \/\/\/ &lt;summary&gt;\n    \/\/\/ \u8c03\u62e8\u660e\u7ec6\u4fe1\u606f\n    \/\/\/ &lt;\/summary&gt;\n    public class MoveDetailInfo\n    {\n        private int _ID;\n        public int ID\n        {\n            get { return _ID; }\n            set { _ID = value; }\n        }\n\n        private string _M_ID;\n        public string M_ID\n        {\n            get { return _M_ID; }\n            set { _M_ID = value; }\n        }\n\n        private string _DVID;\n        public string DVID\n        {\n            get { return _DVID; }\n            set { _DVID = value; }\n        }\n\n        private string _DVName;\n        public string DVName\n        {\n            get { return _DVName; }\n            set { _DVName = value; }\n        }\n\n        private string _DVType;\n        public string DVType\n        {\n            get { return _DVType; }\n            set { _DVType = value; }\n        }\n    }\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>\u53c2\u8003\u6587\u7ae0 :<\/p>\n<p><a title=\".net\u6cdb\u578b\u5728\u5e8f\u5217\u5316\u3001\u53cd\u5e8f\u5217\u5316JSON\u6570\u636e\u4e2d\u7684\u5e94\u7528 \" href=\"http:\/\/www.cnblogs.com\/jdmei520\/archive\/2009\/09\/19\/1569600.html\" target=\"_blank\"><span style=\"color: #000080;\">.net\u6cdb\u578b\u5728\u5e8f\u5217\u5316\u3001\u53cd\u5e8f\u5217\u5316JSON\u6570\u636e\u4e2d\u7684\u5e94\u7528<\/span>\u00a0 http:\/\/www.cnblogs.com\/jdmei520\/archive\/2009\/09\/19\/1569600.html<\/a><\/p>\n<p><a title=\"C# \u5c06javascript\u7684JSON\u53cd\u5e8f\u5217\u5316\u4e3a\u6570\u7ec4\uff0c\u6cdb\u578bList\uff0c\u5bf9\u8c61\" href=\"http:\/\/hi.baidu.com\/jiang_yy_jiang\/item\/c32aff05bcce12ca915718e8\" target=\"_blank\">C# \u5c06javascript\u7684JSON\u53cd\u5e8f\u5217\u5316\u4e3a\u6570\u7ec4\uff0c\u6cdb\u578bList\uff0c\u5bf9\u8c61\u00a0\u00a0&#8211; \u00a0http:\/\/hi.baidu.com\/jiang_yy_jiang\/item\/c32aff05bcce12ca915718e8<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u505a\u4e86\u4e00\u5929\u6709\u5173\u4e8eJSON\u7684\u5de5\u4f5c\uff0c\u89e3\u6790\u4e3aJSON\u96be\u5ea6\u5230\u4e0d\u5927\uff0c\u7528.Net\u4e2d\u5fae\u8f6f\u81ea\u5df1\u7684\u65b9\u6cd5\u4e5f\u5f88\u597d\u7528\u3002 \u591a\u5c42\u6b21\u6cdb\u578b\u590d\u6742\u5bf9 &hellip; <a href=\"https:\/\/www.bohu.net\/blog\/8919\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cJson.NET \u53cd\u5e8f\u5217\u5316  \u591a\u5c42\u6b21 \u6cdb\u578b \u590d\u6742\u5bf9\u8c61 json\uff08\u5982List\uff09\u5230\u6570\u636e\u5b9e\u4f53\u5bf9\u8c61\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4,11,26],"tags":[216,217,232,481,494,495,535,557],"class_list":["post-8919","post","type-post","status-publish","format-standard","hentry","category-net","category-c-net","category-web","category-26","tag-json","tag-json-net","tag-list","tag-481","tag-494","tag-495","tag-535","tag-557"],"_links":{"self":[{"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/posts\/8919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/comments?post=8919"}],"version-history":[{"count":0,"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/posts\/8919\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/media?parent=8919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/categories?post=8919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bohu.net\/blog\/wp-json\/wp\/v2\/tags?post=8919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}