日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#拼装JSON数组简易方法

發(fā)布時(shí)間:2024/7/5 C# 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#拼装JSON数组简易方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  下面是我們想要拼接出來(lái)的JSON字符串,返回給前臺(tái)

1 {"success":"true","msg":"","data":[{"macName":"正面預(yù)拼裝機(jī)","state":1.0},{"macName":"正面拼板壓力架","state":1.0},{"macName":"板片翻身系統(tǒng)","state":1.0},{"macName":"反面預(yù)拼裝機(jī)","state":1.0},{"macName":"反面拼板壓力架","state":1.0},{"macName":"劃線噴碼機(jī)","state":0.0},{"macName":"縱骨焊接安裝輥道","state":0.0},{"macName":"縱骨焊接機(jī)","state":1.0},{"macName":"T排焊接安裝輥道","state":0.0}]}

  想看拼接后的JSON格式,這里可以推薦一個(gè)網(wǎng)站:https://www.json.cn/

  之前都是用StringBuider手動(dòng)拼接出JSON數(shù)據(jù),拼出來(lái)的結(jié)果還容易錯(cuò),下面推薦一個(gè)簡(jiǎn)單方式

  首先,我們把JSON數(shù)組創(chuàng)建實(shí)體類,那么問(wèn)題來(lái)了,這個(gè)實(shí)體類如何創(chuàng)建,這里推薦一個(gè)網(wǎng)站:http://www.bejson.com/convert/json2csharp/,只需要將JSON格式放入,就會(huì)幫我們自動(dòng)轉(zhuǎn)成實(shí)體類

  實(shí)體類也比較簡(jiǎn)單,用到了List集合存放對(duì)象,下面Demo演示

實(shí)體類

1 public class MacState 2 { 3 /// <summary> 4 /// 請(qǐng)求狀態(tài) 5 /// </summary> 6 public string success { get; set; } 7 /// <summary> 8 /// 錯(cuò)誤信息 9 /// </summary> 10 public string msg { get; set; } 11 /// <summary> 12 /// JSON數(shù)組 13 /// </summary> 14 public List<MacStateData> data { get; set; } 15 } 16 public class MacStateData 17 { 18 /// <summary> 19 /// 設(shè)備名稱 20 /// </summary> 21 public string macName { get; set; } 22 /// <summary> 23 /// 運(yùn)行狀態(tài) 運(yùn)行/停止(1/0) 24 /// </summary> 25 public decimal state { get; set; } 26 }

函數(shù)(標(biāo)紅色的注意!!!)

1 /// <summary> 2 /// 設(shè)備狀態(tài)情況 3 /// </summary> 4 /// <returns>JSON數(shù)組</returns> 5 [WebMethod(Description ="設(shè)備狀態(tài)")] 6 public string GetMacState() 7 { 8 MacState obj = new MacState(); 9 try 10 { 11 DateTime NowDate = DateTime.Now; 12 DataTable dt_his_count = new DataTable(); 13 DataTable dt_mac_state = new DataTable(); 14 int max_count = 200000; 15 string add_his_sql = "INSERT INTO EMES_MAC_STATE_PORT_HIS (DEF_DATE) VALUES (TO_DATE('{0}','YYYY-MM-DD HH24:MI:SS'))"; 16 DbUtil.ExecuteSql(string.Format(add_his_sql, NowDate)); 17 string query_his_sql = "SELECT COUNT(*) FROM EMES_MAC_STATE_PORT_HIS"; 18 dt_his_count = DbUtil.QueryDT(query_his_sql); 19 if (Convert.ToDecimal(dt_his_count.Rows[0][0]??"0")>max_count) //接口日志超過(guò)20W條,自動(dòng)刪除 20 { 21 string del_sql = "DELETE FROM EMES_MAC_STATE_PORT_HIS"; 22 DbUtil.ExecuteSql(del_sql); 23 } 24 string query_mac_state_sql = "SELECT MAC_NAME,STATE FROM EMES_MAC_STATE"; 25 dt_mac_state = DbUtil.QueryDT(query_mac_state_sql); 26 if (dt_mac_state.Rows.Count > 0) 27 { 28 obj.success = "true"; 29 obj.msg = ""; 30 obj.data = new List<MacStateData>(); //實(shí)例化JSON數(shù)組,不實(shí)例化要報(bào)錯(cuò) 31 for (int i = 0; i < dt_mac_state.Rows.Count; i++) 32 { 33 MacStateData objData = new MacStateData(); //實(shí)例化JSON數(shù)組對(duì)象,用于添加JSON數(shù)組集合 34 objData.macName = dt_mac_state.Rows[i]["MAC_NAME"].ToString(); 35 objData.state = Convert.ToDecimal(dt_mac_state.Rows[i]["STATE"] ?? "0"); 36 obj.data.Add(objData); //添加JSON數(shù)組集合 37 } 38 string res = JsonConvert.SerializeObject(obj); //轉(zhuǎn)JSON數(shù)組,演示用,下面講方法使用 39 return JSONHelper.ToJSON(obj); //調(diào)用的封裝函數(shù),不用管,我們將上面的方式 40 } 41 else 42 { 43 obj.success = "false"; 44 obj.msg = "當(dāng)前無(wú)數(shù)據(jù)信息,請(qǐng)稍后再試!"; 45 obj.data = new List<MacStateData>(); 46 return JSONHelper.ToJSON(obj); 47 } 48 } 49 catch (Exception ex) 50 { 51 obj.success = "false"; 52 obj.msg = ex.Message; 53 obj.data = new List<MacStateData>(); 54 return JSONHelper.ToJSON(obj); 55 } 56 }

注:將對(duì)象轉(zhuǎn)JSON數(shù)組,我們需要引入外部類庫(kù):Newtonsoft.Json.dll,沒(méi)有的小伙伴請(qǐng)到我另外一篇博客下載:https://www.cnblogs.com/chenyanbin/p/11200415.html

1 引入命名空間: 2 using Newtonsoft.Json; 3 4 方法使用: 5 JsonConvert.SerializeObject(實(shí)體類對(duì)象)

JSON數(shù)組

搞定~~

?

轉(zhuǎn)載于:https://www.cnblogs.com/chenyanbin/p/11205616.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的C#拼装JSON数组简易方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。