亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JSON生成c#類代碼小工具

2019-11-17 02:32:54
字體:
來源:轉載
供稿:網友

JSON生成c#類代碼小工具

JSON生成c#類代碼小工具

為什么寫這么個玩意

最近的項目中需要和一個服務端程序通訊,而通訊的協議是基于流行的json,由于是.net,所以很簡單的從公司代碼庫里找到了Newtonsoft.dll(json.net),但是悲劇的是這個dll居然是很老的版本,沒有Newtonsoft.Json.Linq、沒有JObject,也就是說,如果想使用json必須json字符序列化為.net對象才行,這時問題來了,json格式無比的復雜,如果我一個一個對著json去定義class代碼,實在是顯得有點蠢了,所以百度了一下,還真找到了一個工具http://json2csharp.chahuo.com/,但是這個工具對我來說有一點點不爽,我的json中屬性的值,我希望將它生成為.net中屬性的注釋如:如

{   name:"用戶名",passWord:"密碼"}

生成

public class Root{    /// <summary>    /// 用戶名    /// <summary>    public string name { get; set; }    /// <summary>    /// 密碼    ///</summary>    public string password { get; set; }}

而該工具貌似不可以,于是使用js寫了簡單的小工具,(測試數據json來自于:http://www.juhe.cn/docs/api/id/39(不是廣告,我隨便找的))如下:

代碼

<html><head><title>json生成c#類</title><link rel="stylesheet" href="http://js.chahuo.com/PRettify/prettify.CSS"><script language="javascript" type="text/Javascript" src="http://js.chahuo.com/prettify/prettify.js"></script><script type="text/javascript" src="http://tool.oschina.net/js/jsbeautify.js"></script></head><body><h1>json生成C#類小工具</h1><h5>JSON 字符串</h5><div><textarea style="width:600px;height:300px;margin-bottom:5px;" id="jsonStr"></textarea><br><button onclick="document.getElementById('jsonStr').value='';document.getElementById('class').innerHTML=''">清除</button><button onclick="do_js_beautify()">格式化代碼</button><button onclick="startGen()">生成C#類</button></div><h5>C#類代碼&nbsp;<button onclick="selectCode()">選中代碼</button></h5><pre class="prettyprint" id="class" style="border:1px solid #ccc; padding:10px; width:800px;"> </pre><script>String.prototype.format = function(){var args = arguments;return this.replace(//{(/d+)/}/g,                function(m,i){return args[i];});}String.prototype.trim=function(){ return this.replace(/(^/s*)|(/s*$)/g,"");}JSON2CSharp={_allClass:[],_genClassCode:function(obj,name){var clas="public class {0}/r/n{/r/n".format(name || "Root");for(var n in obj){var v = obj[n];n = n.trim();clas += "    {0}    public {1} {2} { get; set; }/r/n/r/n".format(this._genComment(v),this._genTypeByProp(n,v),n);}clas += "}/r/n/r/n";this._allClass.push(clas);return this._allClass.join("/r/n/r/n");},_genTypeByProp:function(name,val){switch(Object.prototype.toString.apply(val)){case "[object Number]" :{return val.toString().indexOf(".") > -1 ? "double" : "int";}case "[object Date]":{return "DateTime";}case "[object Object]":{                                                name =  name.substring(0,1).toUpperCase() + name.substring(1);this._genClassCode(val,name);return name;}case "[object Array]":{return "List&#60;{0}&#62;".format(this._genTypeByProp(name+"Item",val[0]));}default:{return "string";}}},_genComment:function(val){var commm= typeof(val) == "string" && /.*[/u4e00-/u9fa5]+.*$/.test(val) ? val : "" ;return "/// &#60;summary&#62;/r/n    /// "+commm+ "/r/n    /// &#60;/summary&#62;/r/n";},convert:function(jsonObj){this._allClass=[];return this._genClassCode(jsonObj);}}function do_js_beautify() {var js_source =document.getElementById("jsonStr").value.replace(/^/s+/, '');if(js_source.length==0)return;tabchar = ' ';var fjs = js_beautify(js_source);document.getElementById("jsonStr").value=fjs;}function startGen(){try{var v = eval("("+document.getElementById("jsonStr").value+")");document.getElementById("class").className ="prettyprint";document.getElementById("class").innerHTML=JSON2CSharp.convert(v);prettyPrint();document.getElementById("jsonStr").focus();}catch(e){alert(e.message);}}function selectCode() {if (document.selection) {var range = document.body.createTextRange();range.moveToElementText(document.getElementById('class'));range.select();} else if (window.getSelection) {var range = document.createRange();range.selectNode(document.getElementById('class'));window.getSelection().addRange(range);}}</script></body></html>

原理非常簡單,遍歷json對象的屬性,根據屬性值的類型生成對應的類名即可, 這里不做詳細介紹了。 代碼寫的有點丑,希望大家用得著。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97精品一区二区视频在线观看| 欧美日韩福利电影| 美日韩丰满少妇在线观看| 色爱av美腿丝袜综合粉嫩av| 欧美激情精品久久久久久变态| 国产精品久久久久久久av电影| 欧美精品18videos性欧美| 91高清视频免费观看| 中文字幕在线看视频国产欧美在线看完整| 不卡毛片在线看| 奇米成人av国产一区二区三区| 欧美孕妇与黑人孕交| 亚洲精品电影久久久| 欧美一区二区影院| 亚洲丝袜一区在线| 91精品视频在线看| 欧美巨猛xxxx猛交黑人97人| 日韩电影网在线| 一本色道久久88综合亚洲精品ⅰ| 亚洲综合日韩中文字幕v在线| 国产精品高潮呻吟久久av无限| 国产精品久久激情| 深夜福利91大全| 色综合久久久888| 日韩欧美一区视频| 国产一区二区三区在线| 日韩大陆欧美高清视频区| 欧美在线国产精品| www日韩中文字幕在线看| 国产玖玖精品视频| 亚洲天堂一区二区三区| 久久亚洲私人国产精品va| 国产午夜精品免费一区二区三区| 国内精品一区二区三区| 欧美二区在线播放| 欧美高清视频在线播放| 精品香蕉一区二区三区| 日韩美女写真福利在线观看| 国产一区二区三区三区在线观看| 欧美激情国产日韩精品一区18| 亚洲国产古装精品网站| 自拍偷拍亚洲一区| 中文字幕在线视频日韩| 最近2019中文字幕第三页视频| 上原亚衣av一区二区三区| 亚洲专区国产精品| 亚洲国产第一页| 亚洲欧美日韩一区二区在线| 亚洲aa中文字幕| 91sao在线观看国产| 日韩美女免费观看| 91久久精品一区| 日韩亚洲欧美成人| 国产欧美一区二区三区久久人妖| 日韩午夜在线视频| 久久网福利资源网站| 国产一区香蕉久久| 国产精品99久久久久久久久久久久| 日韩成人高清在线| 欧美色播在线播放| 在线国产精品播放| 国产欧美va欧美va香蕉在线| 亚洲男人天天操| 亚洲精品视频在线播放| 国产精品老牛影院在线观看| 欧美裸体视频网站| 日韩乱码在线视频| 日韩在线资源网| 久久在线精品视频| 欧美日韩精品在线| 欧美性精品220| 欧美日韩在线观看视频| 岛国av在线不卡| 亚洲高清久久久久久| www.美女亚洲精品| 伊是香蕉大人久久| 国产精品久久久久久av福利软件| 国产精品羞羞答答| 91色视频在线观看| 国产视频久久久| 亚洲欧美资源在线| 色综合91久久精品中文字幕| 国产99久久久欧美黑人| 欧美精品激情在线| 亚洲品质视频自拍网| 亚洲欧美国产视频| 国产精品视频久久久久| 国产精品色悠悠| 最近2019年中文视频免费在线观看| 亚洲加勒比久久88色综合| 亚洲免费中文字幕| 国产精品久久久亚洲| 91精品久久久久久久久不口人| 国产精品一区二区三区免费视频| 亚洲国产成人爱av在线播放| 久久九九免费视频| 亚洲精品有码在线| 国产专区精品视频| 久久综合五月天| 国产精品久久久久久久久| 午夜剧场成人观在线视频免费观看| 美日韩精品免费视频| 欧美亚洲国产视频| 日本高清久久天堂| 久久精品视频va| 日韩av免费一区| 国产精品亚洲综合天堂夜夜| 久久欧美在线电影| 亚洲欧美另类国产| 亚洲九九九在线观看| 日韩av手机在线| www.国产精品一二区| 国产精品v片在线观看不卡| 97香蕉超级碰碰久久免费软件| 亚洲第一av网站| 亚洲黄色有码视频| 久久久久一本一区二区青青蜜月| 日韩电影网在线| 亚洲天堂一区二区三区| 国产亚洲精品日韩| 国产精品av网站| 欧美一级黄色网| 久久久久免费视频| 成人午夜小视频| 精品国产精品自拍| 久久久久久伊人| 国产精品视频在线观看| 久久人人爽人人| 亚洲韩国日本中文字幕| 91久久国产综合久久91精品网站| 国产日韩欧美日韩大片| 欧美高清电影在线看| 久久久久久久亚洲精品| 欧美一级高清免费播放| 国产精品美女在线观看| 欧美亚洲第一页| 国内精品免费午夜毛片| 亚洲激情免费观看| 亚洲第一综合天堂另类专| zzijzzij亚洲日本成熟少妇| 久久综合久久八八| 亚洲欧美中文日韩在线| 九九视频直播综合网| 日韩av在线免费| 欧美视频免费在线观看| 国产精品av在线播放| 亚洲欧美一区二区精品久久久| 国产91在线视频| 日韩中文字幕在线视频| 久久91亚洲精品中文字幕奶水| 久久天天躁狠狠躁老女人| 亚洲国产成人久久| 亚洲第一色中文字幕| 欧美片一区二区三区| 欧美国产高跟鞋裸体秀xxxhd| 91精品国产99| 久久噜噜噜精品国产亚洲综合| 九九综合九九综合| 亚洲老司机av| 97精品欧美一区二区三区| 岛国精品视频在线播放| 38少妇精品导航| 成人网在线免费观看| 欧美色xxxx|