C#拼装JSON数组简易方法

  下面是我们想要拼接出来的JSON字符串,返回给前台

1 {"success":"true","msg":"","data":[{"macName":"正面预拼装机","state":1.0},{"macName":"正面拼板压力架","state":1.0},{"macName":"板片翻身系统","state":1.0},{"macName":"反面预拼装机","state":1.0},{"macName":"反面拼板压力架","state":1.0},{"macName":"划线喷码机","state":0.0},{"macName":"纵骨焊接安装辊道","state":0.0},{"macName":"纵骨焊接机","state":1.0},{"macName":"T排焊接安装辊道","state":0.0}]}

  想看拼接后的JSON格式,这里可以推荐一个网站:https://www.json.cn/

  之前都是用StringBuider手动拼接出JSON数据,拼出来的结果还容易错,下面推荐一个简单方式

  首先,我们把JSON数组创建实体类,那么问题来了,这个实体类如何创建,这里推荐一个网站:http://www.bejson.com/convert/json2csharp/,只需要将JSON格式放入,就会帮我们自动转成实体类

  实体类也比较简单,用到了List集合存放对象,下面Demo演示

实体类

 1     public class MacState
 2     {
 3         /// <summary>
 4         /// 请求状态
 5         /// </summary>
 6         public string success { get; set; }
 7         /// <summary>
 8         /// 错误信息
 9         /// </summary>
10         public string msg { get; set; }
11         /// <summary>
12         /// JSON数组
13         /// </summary>
14         public List<MacStateData> data { get; set; }
15     }
16     public class MacStateData
17     {
18         /// <summary>
19         /// 设备名称
20         /// </summary>
21         public string macName { get; set; }
22         /// <summary>
23         /// 运行状态 运行/停止(1/0)
24         /// </summary>
25         public decimal state { get; set; }
26     }

函数(标红色的注意!!!)

 1     /// <summary>
 2     /// 设备状态情况
 3     /// </summary>
 4     /// <returns>JSON数组</returns>
 5     [WebMethod(Description ="设备状态")]
 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) //接口日志超过20W条,自动删除
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>(); //实例化JSON数组,不实例化要报错                
31                 for (int i = 0; i < dt_mac_state.Rows.Count; i++)
32                 {
33                     MacStateData objData = new MacStateData(); //实例化JSON数组对象,用于添加JSON数组集合
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数组集合
37                 }
38                 string res = JsonConvert.SerializeObject(obj); //转JSON数组,演示用,下面讲方法使用
39                  return JSONHelper.ToJSON(obj); //调用的封装函数,不用管,我们将上面的方式
40             }
41             else
42             {
43                 obj.success = "false";
44                 obj.msg = "当前无数据信息,请稍后再试!";
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     }

注:将对象转JSON数组,我们需要引入外部类库:Newtonsoft.Json.dll,没有的小伙伴请到我另外一篇博客下载:https://www.cnblogs.com/chenyanbin/p/11200415.html

1 引入命名空间:
2 using Newtonsoft.Json;
3 
4 方法使用:
5 JsonConvert.SerializeObject(实体类对象)

JSON数组

搞定~~

 

转载于:https://www.cnblogs.com/chenyanbin/p/11205616.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IEEE年终AI大盘点:网友教会GPT-3骂人、DeepMind再造机器人

来源&#xff1a;新智元【导读】2021年即将过去&#xff0c;IEEE Spectrum盘点了今年的十大AI新闻。在过去的一年里&#xff0c;AI模型训练成本起飞、GPT-3从网友那儿学会了「阴阳怪气」&#xff0c;此外&#xff0c;研究人员还总结了AI绕不过去的七大弱点。2021 年&#xff0c…

2. 3物理层设备

2. 3物理层设备 文章目录2. 3物理层设备中继器2.集线器(多口中继器)中继器 2.集线器(多口中继器)

谁是深度学习框架一哥?2022 年,PyTorch 和 TensorFlow 再争霸

来源&#xff1a;机器学习研究组订阅用PyTorch还是TensorFlow&#xff0c;对于大部分深度学习从业者来说真是一个头疼的问题。最近Reddit上有个帖子从三个方面对比了两个框架&#xff0c;结果竟然是平手&#xff1f;你用PyTorch还是用TensorFlow&#xff1f;对于不同人群可能有…

深度学习不可信?大脑建模先驱有话说

来源&#xff1a;ScienceAI编辑&#xff1a;萝卜皮在过去的 20 年里&#xff0c;深度学习通过一系列有用的商业应用主导了人工智能的研究和应用。但在耀眼的背后是一些根深蒂固的问题&#xff0c;威胁着技术的提升。例如&#xff0c;典型的深度学习程序无法在一项以上的任务上表…

python模块补充

collections模块 collections模块namedtupe方法。又称具名元组。 from collections import namedtuple point namedtuple(空间坐标, x y z) # x y z可以写成列表形式&#xff0c;元组等可迭代对象 res point(3, 4, 5) print(res) # 空间坐标(x3, y4, z5) print(poin…

《力学》课时二质点运动学(二)

视频链接 1.角位移/角速度/角加速度

ListObject 多条件去重

上一篇将到根据某一条件去重List<Object> 对象链表。本文章根据多条件去重List<Object>去重 1 private List<StaingMD0010> getSecondProductWork(List<StaingMD0010> list) {2 for (int i 0; i < list.size(); i) {3 for (int j 0; …

More than Moore的探索

来源&#xff1a;内容由半导体行业观察&#xff08;ID&#xff1a;icbank&#xff09;编译&#xff1a;porsche众所周知&#xff0c;现代电子学于1947年12月16日在新泽西州 Murray Hill的贝尔实验室诞生&#xff0c;在那里物理学家Walter Brattain 首次成功使用一种临时制作的半…

用scikit-learn学习主成分分析(PCA)

在主成分分析&#xff08;PCA&#xff09;原理总结中&#xff0c;我们对主成分分析(以下简称PCA)的原理做了总结&#xff0c;下面我们就总结下如何使用scikit-learn工具来进行PCA降维。 一、scikit-learn PCA类介绍 在scikit-learn中&#xff0c;与PCA相关的类都在sklearn.deco…

开始即结束,Meta元宇宙OS要黄?

来源&#xff1a;七月在线实验室出师未捷身先死&#xff0c;Meta元宇宙操作系统要凉凉了&#xff1f;团队解散&#xff0c;负责人跳槽&#xff01;副总裁亲自发推「辟谣」&#xff0c;但……Facebook进军元宇宙决心&#xff0c;如今要泡汤了&#xff1f;发布元宇宙产品不过瘾&a…

3.1_ 1_ 内存的基础知识

3.1_ 1_ 内存的基础知识 文章目录1.知识总览2.什么是内存&#xff0c;有什么作用进程的运行原理-指令逻辑地址vs物理地址从写程序到程序运行装入模块装入内存装入的三种方式--绝对装入装入的三种方式一静态重定位装入的三种方式- -动态重定位进程运行的基本原理链接的三种方式知…

为什么说黎曼猜想是最重要的数学猜想?

来源&#xff1a;卢老师网站: www.changhai.org作者: 卢昌海老师, 科学人黎曼猜想是一位名叫黎曼 (Bernhard Riemann) 的数学家提出的。黎曼是一位英年早逝的德国数学家&#xff0c; 出生于 1826 年&#xff0c; 去世于 1866 年&#xff0c; 享年还不到 40 岁。黎曼的一生虽然短…

【广搜】Keyboarding

题目描述 给定一个r行c列的在电视上的“虚拟键盘”&#xff0c;通过“上&#xff0c;下&#xff0c;左&#xff0c;右&#xff0c;选择”共5个控制键&#xff0c;你可以移动电视屏幕上的光标来打印文本。一开始&#xff0c;光标在键盘的左上角&#xff0c;每次按方向键&#xf…

3.1_ _2_ 内存管理的概念

知识总览 内存空间的分配和回收 内存空间的扩展 地址转换 内存保护 知识回顾

Yann LeCun:发现智能原理是AI的终极问题 | 独家对话

来源&#xff1a;智源社区对话整理&#xff1a;李梦佳 周致毅导读&#xff1a;在《科学之路&#xff1a;人&#xff0c;机器与未来》一书中&#xff0c;图灵奖得主&#xff0c;卷积网络之父杨立昆&#xff08;Yann LeCun&#xff09;提出&#xff0c;在科学史上&#xff0c;技术…

4.1.2电路交换、报文交换与分组交换

1.网络的掌中宝 2.为什么要进行数据交换 3.数据交换方式 3.1 电话交换 3.2报文交换 3.3分组交换 3.4 报文交换和分组交换 3.5三种数据交换比较总结

leetcode-187-重复的DNA序列

题目描述&#xff1a; 方法一&#xff1a; class Solution:def findRepeatedDnaSequences(self, s: str) -> List[str]:n 10d {}for i in range(len(s)-9):if s[i:i10] in d:d[s[i:i10]] Trueelse:d[s[i:i10]] Falsereturn [i for i in d if d[i]] 方法二&#xff1a; c…