下面是我们想要拼接出来的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. Win8Metro(C#)数字图像处理--2.19图像水平镜像

    原文:Win8Metro(C#)数字图像处理--2.19图像水平镜像  [函数名称] 图像水平镜像函数MirrorXProcess(WriteableBitmap src) [函数代码]      ...

  2. MS SQL SERVER搜索某个表的主键所在的列名

    原文:MS SQL SERVER搜索某个表的主键所在的列名 SELECT SYSCOLUMNS.name  FROM SYSCOLUMNS,SYSOBJECTS,SYSINDEXES,SYSINDEX ...

  3. Qt for windows消息循环、libqxt分析和wince快捷键处理

    Qt for windows消息循环.libqxt分析和wince快捷键处理 利用Qt做windows图形界面开发和MFC相比,个人感觉还是比较简单好用的:首先利用Designer工具搞个ui文件:然 ...

  4. 零元学Expression Blend 4 - Chapter 36 来玩捉迷藏吧!!!看看ScrollBar的Disabled与Hidden之差异

    原文:零元学Expression Blend 4 - Chapter 36 来玩捉迷藏吧!!!看看ScrollBar的Disabled与Hidden之差异 本次要针对Disabled以及Hidden作 ...

  5. 零元学Expression Blend 4 - Chapter 1 缘起

    原文:零元学Expression Blend 4 - Chapter 1 缘起 本来都使用Adobe相关工具从事设计工作的我,因缘际会下,接触到了Expression Blend 4,让我完全的对微软 ...

  6. Android零基础入门第41节:使用SimpleAdapter

    原文:Android零基础入门第41节:使用SimpleAdapter 通过ArrayAdapter实现Adapter虽然简单.易用,但ArrayAdapter的功能比较有限,它的每个列表项只能给一个 ...

  7. postgresql Java JDBC 一次性传入多个参数到 in ( ?) - multple/list parameters

    经常不清楚需要传入多少个参数到 IN () 里面,下面是简单方法: 方法 1 - in ( SELECT * FROM unnest(?)) ) Integer[] ids={1,2,3};      ...

  8. python机器学习系列之环境搭建

    Windows系统下python2.7,numpy,matplotlib安装 1.  python2.7从https://www.python.org/downloads/release/python ...

  9. 修改zookeeper jvm参数

    在zkServer.sh中,增加以下参数: start)    echo  -n "Starting zookeeper ... "    if [ -f $ZOOPIDFILE ...

  10. Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)

    为了兼容N多个网站,服务器上有3个PHP版本5.3/5.6/7.2.宝塔默认为5.3,但是laravel5.7并不支持,所以在创建线上 .env 环境配置文件,初始化应用配置时候报错了. cp .en ...