下面是我们想要拼接出来的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. 图像滤镜艺术--Toaster滤镜

    原文:图像滤镜艺术--Toaster滤镜     根据Instagram CEO的说法,Toaster滤镜是Instagram所有滤镜中最复杂的滤镜,这个滤镜给人一种新奇的红色烘烤感,很能让人联想起这 ...

  2. Android 命令设置获取、IP地址、网关、dns

    设置ip root@android:/ # ifconfig eth0 192.168.0.173 netmask 255.255.255.0 ifconfig eth0 192.168.0.173 ...

  3. 16.Oct Working Note

    01 writing algorithm by assembly,but the bug... now,it runs normaly,but how to print the answer? suc ...

  4. Android零基础入门第87节:Fragment添加、删除、替换

    前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加.删除.替换. 一.概述 在前面的学习中,特别是动态加 ...

  5. 毕设(二)C#SerialPort

    毕业设计中,用到串口与无人机通信,所以就用到了SerialPort这个类,这个类在设置属性时, 用到最主要的属性应该是COM口和波特率,由于本人不熟悉硬件,不便多说,但经验告诉我是这样的, 还有数据位 ...

  6. Qt 下快速读写Excel指南(尘中远)

    Qt Windows 下快速读写Excel指南 很多人搜如何读写excel都会看到用QAxObject来进行操作,很多人试了之后都会发现一个问题,就是慢,非常缓慢!因此很多人得出结论是QAxObjec ...

  7. 推荐一个第三方Qt库的集合 good

    https://inqlude.org/ Stable libraries | Development versions | Unreleased | Commercial | All attica ...

  8. Qt中连接到同一signal的多个slots的执行顺序问题(现在是看连接顺序,以前是无序的)

    in the order they have been connected 起源 前些天忘记在哪儿讨论过这个问题,今天在csdn又看到有网友问这个问题,而其他网友却无一例外的给出了“无序”这个答案. ...

  9. qt sql事务操作

    事务是数据库的一个重要功能,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位.在Qt中用transaction()开始一个事务操作,用commit()函数或 ...

  10. C++界面库(十几种,很全)

    刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自 ...