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

 {"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演示

实体类

     public class MacState
{
/// <summary>
/// 请求状态
/// </summary>
public string success { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string msg { get; set; }
/// <summary>
/// JSON数组
/// </summary>
public List<MacStateData> data { get; set; }
}
public class MacStateData
{
/// <summary>
/// 设备名称
/// </summary>
public string macName { get; set; }
/// <summary>
/// 运行状态 运行/停止(1/0)
/// </summary>
public decimal state { get; set; }
}

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

     /// <summary>
/// 设备状态情况
/// </summary>
/// <returns>JSON数组</returns>
[WebMethod(Description ="设备状态")]
public string GetMacState()
{
MacState obj = new MacState();
try
{
DateTime NowDate = DateTime.Now;
DataTable dt_his_count = new DataTable();
DataTable dt_mac_state = new DataTable();
int max_count = ;
string add_his_sql = "INSERT INTO EMES_MAC_STATE_PORT_HIS (DEF_DATE) VALUES (TO_DATE('{0}','YYYY-MM-DD HH24:MI:SS'))";
DbUtil.ExecuteSql(string.Format(add_his_sql, NowDate));
string query_his_sql = "SELECT COUNT(*) FROM EMES_MAC_STATE_PORT_HIS";
dt_his_count = DbUtil.QueryDT(query_his_sql);
if (Convert.ToDecimal(dt_his_count.Rows[][]??"")>max_count) //接口日志超过20W条,自动删除
{
string del_sql = "DELETE FROM EMES_MAC_STATE_PORT_HIS";
DbUtil.ExecuteSql(del_sql);
}
string query_mac_state_sql = "SELECT MAC_NAME,STATE FROM EMES_MAC_STATE";
dt_mac_state = DbUtil.QueryDT(query_mac_state_sql);
if (dt_mac_state.Rows.Count > )
{
obj.success = "true";
obj.msg = "";
obj.data = new List<MacStateData>(); //实例化JSON数组,不实例化要报错
for (int i = ; i < dt_mac_state.Rows.Count; i++)
{
MacStateData objData = new MacStateData(); //实例化JSON数组对象,用于添加JSON数组集合
objData.macName = dt_mac_state.Rows[i]["MAC_NAME"].ToString();
objData.state = Convert.ToDecimal(dt_mac_state.Rows[i]["STATE"] ?? "");
obj.data.Add(objData); //添加JSON数组集合
}
string res = JsonConvert.SerializeObject(obj); //转JSON数组,演示用,下面讲方法使用
return JSONHelper.ToJSON(obj); //调用的封装函数,不用管,我们将上面的方式
}
else
{
obj.success = "false";
obj.msg = "当前无数据信息,请稍后再试!";
obj.data = new List<MacStateData>();
return JSONHelper.ToJSON(obj);
}
}
catch (Exception ex)
{
obj.success = "false";
obj.msg = ex.Message;
obj.data = new List<MacStateData>();
return JSONHelper.ToJSON(obj);
}
}

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

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

JSON数组

搞定~~

最新文章

  1. 【小白的CFD之旅】08 CFD速成之道
  2. HttpClient——Get,Post
  3. 网络资源管理系统LANsurveyor实战体验
  4. Laravel 5 基础(五)- 环境与配置
  5. 清除windows的EFS加密
  6. .NET4安装总进度一直不动的解决办法
  7. UVa 12304 (6个二维几何问题合集) 2D Geometry 110 in 1!
  8. Hadoop新版本中map任务待处理split大小的计算方法
  9. php生成不重复随机字符串
  10. poj1201/zoj1508/hdu1384 Intervals(差分约束)
  11. 树莓派高级GPIO库,wiringpi2 for python使用笔记(五)i2c读取测试
  12. hdu4635(最多加多少边,使得有向图不是强连通图)
  13. UIBarButtonItem 小记边
  14. [Maven]Maven构建可执行的jar包(包含依赖jar包)
  15. VisualSVN Server 配置和使用
  16. JDBC连接各种数据库的方法,连接MySql,Oracle数据库
  17. VS2015 添加web服务(电子看板)
  18. K - Strange Country II 暴力dfs判断有向图是否连通//lxm
  19. JS页面出现Uncaught SyntaxError: Unexpected token &lt; 错误
  20. 《EMCAScript6入门》读书笔记——2.let和const命令

热门文章

  1. 硬盘的结构和介绍,硬盘MBR详细介绍(超详细彩图)
  2. shell脚本配置ssh免密登陆
  3. 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(1)
  4. MySQL 其它基本操作
  5. 中芯国际在CSTIC上悉数追赶国际先进水平的布局
  6. new和delete必须成对出现吗?【网上集合贴+个人总结】
  7. iOS密码框的实现方式
  8. Mac上刚安装的WebStorm或PHPStorm遇到SVN版本太旧的问题
  9. JVM检测&amp;工具
  10. 从理论到实践,全方位认识HTTP/2