下面是我们想要拼接出来的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数组

搞定~~

C#拼装JSON数组简易方法的更多相关文章

  1. js便利json 数组的方法

    这篇文章主要介绍了JQuery遍历json数组的3种方法,本文分别给出了使用each.for遍历json的方法,其中for又分成两种形式,需要的朋友可以参考下 $(function () { var ...

  2. Jsp页面用ajax传输json数组的方法

    详细参考jquery的API 这里主要展示实例,即写法 <%@ page language="java" contentType="text/html; chars ...

  3. 浅谈thinkphp中将字符串转换成json数组的方法

    这是一部分代码: $client = M("Client");$data = $client->where('user_id ='.$user_id)->select( ...

  4. ajax交互数据简单拼装,数组成字符串

    json2Form:function(json) { var str = ""; for(var p in json){ // 判断对象是否为数组 if(typeof json[p ...

  5. Gson应用:利用map和list来拼装Json消息

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...

  6. JS简单循环遍历json数组的方法

    例如数据库里面的json字符串是这样的 1 2 3 4 5 var str = '[{"name":"宗2瓜","num":"1& ...

  7. json 拼二维json数组

    js声明数组 以及向数组中添加as移除json数据 JavaScript声明JSON数组的方法: //部分条件,在数据渲上数据要求是数组格式而非json数组格式,取arrayJson.dataList ...

  8. jsoncpp解析拼装数组

    Cocos2d-x添加jsoncpp应该资料都有了,今天来讲讲数组的解析和拼装- int main() { 数组创建与分析: 例子一: string strValue = "{\" ...

  9. java递归算法实现拼装树形JSON数据

    有时候页面需要使用jQuery easy ui中的combotree,需要给combotree提供一个JSON数据,使用如下方法(递归)实现(下面是dao层的实现层): /** * 根据表名和父id拼 ...

随机推荐

  1. Image Caption论文合辑2

    说明: 这个合辑里面的论文不全是Image Caption, 但大多和Image Caption相关, 同时还有一些Workshop论文. Guiding Long-Short Term Memory ...

  2. 使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

    原文:使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置 摘要 讲解在IntelliJ IDEA中,如何进行Mysql数据库的配置 目录[-] 文章已针对IDEA 15做了一定的 ...

  3. linq中不能准确按拼音排序

    在LinqToObject中,利用OrderBy/OrderByDescending, ThenBy/ThenByDescending这4个方法排序时,发现不能正确的按拼音排序,所以在排序时增加编码支 ...

  4. Java虚拟机性能监控与调优实战

    From:  https://c.m.163.com/news/a/D7B0C6Q40511PFUO.html?spss=newsapp&fromhistory=1 Java虚拟机性能监控与调 ...

  5. 获得QQ聊天输入框中的内容

    // 首先得到输入框的句柄.通过spy++这类工具分析,聊天窗体的类名为“#32770”// 但当前系统里不只一个类名为“#32770”的窗体,这就需要全体遍历一次.// 类名为“#32770”标题含 ...

  6. cStor云存储、cProc云处理、cVideo云视频、cTrans云传输,云创个人网盘

    http://www.cstor.cn,微信公众号:cstor_cn.      云创大数据是国际上云计算产品线齐全的企业之一,针对爆炸式增长的大数据需求,研发了自主知识产权的cStor云存储.cPr ...

  7. kubernetes之使用http rest api访问集群

    系列目录 在Kubernetes集群中,API Server是集群管理API的入口,由运行在Master节点上的一个名为kube-apiserver的进程提供的服务. 用户进入API可以通过kubec ...

  8. 深入解析Hyperledger Fabric启动的全过程

    在这篇文章中,使用fabric-samples/first-network中的文件进行fabric网络(solo类型的网络)启动全过程的解析.如有错误欢迎批评指正. 至于Fabric网络的搭建这里不再 ...

  9. Python调试器-pdb的使用

    [简介] pdb是python自带的一个包,为python程序提供了一种交互的源代码调试功能. [使用方法] 1. 使用命令: python -m pdb xxx.py #可以直接进入单步执行模式 2 ...

  10. spring 5.x 系列第2篇 —— springmvc基础 (代码配置方式)

    文章目录 一.搭建hello spring工程 1.1 项目搭建 1.2 相关注解说明 二.配置自定义拦截器 三.全局异常处理 四.参数绑定 4.1 参数绑定 4.2 关于日期格式转换的三种方法 五. ...