/// <summary>
/// dataTable转换成Json格式 JSON对应关系 三层数组
/// </summary>
/// <param name="dt">需要转换的表格</param>
/// <returns></returns>
public static string Table2JsonAryAbNormallData(DataTable phenonmenondt, string station)
{
string json = string.Empty;
if (phenonmenondt.Rows.Count <= )
{
return "{\"total\":" + + ",\"meta\":{\"status\":201,\"msg\":\"无数据\"}}";
}
List<Phenomenon_Model> phelist = new List<Phenomenon_Model>();
for (int i = ; i < phenonmenondt.Rows.Count; i++)
{
List<Reason1_Model> reason1list = new List<Reason1_Model>();
Phenomenon_Model phe = new Phenomenon_Model();
phe.id = i;
phe.value3 = phenonmenondt.Rows[i][].ToString();
DataTable reason1dt = SqlHelper.Query(sql语句);
for (int j = ; j < reason1dt.Rows.Count; j++)
{
List<Reason2_Model> reason2list = new List<Reason2_Model>();
Reason1_Model rea1 = new Reason1_Model();
rea1.id = j;
rea1.value4 = reason1dt.Rows[j][].ToString();
DataTable reason2dt = SqlHelper.Query(sql语句);
for (int n = ; n < reason2dt.Rows.Count; n++)
{
Reason2_Model rea2 = new Reason2_Model();
rea2.id = n;
rea2.value5 = reason2dt.Rows[n][].ToString();
reason2list.Add(rea2);
}
rea1.Children = reason2list;
reason1list.Add(rea1);
}
phe.Children = reason1list;
phelist.Add(phe);
} json = Newtonsoft.Json.JsonConvert.SerializeObject(phelist);//序列化对象
json = "{" + "\"data\":" + json + "," + "\"meta\": {\"msg\": \"获取成功\",\"status\": 200}" + "}";
return json;
}
 public class Phenomenon_Model
{
/// <summary>
/// ID编号
/// </summary>
public int id { get; set; }
/// <summary>
/// 现象
/// </summary>
public string value3 { get; set; }
/// <summary>
/// 子节点
/// </summary>
public List<Reason1_Model> Children { get; set; }
}
 public class Reason1_Model
{
/// <summary>
/// 编号ID
/// </summary>
public int id { get; set; }
/// <summary>
/// 原因1
/// </summary>
public string value4 { get; set; }
/// <summary>
/// 子节点
/// </summary>
public List<Reason2_Model> Children { get; set; }
}
 public class Reason2_Model
{
/// <summary>
/// ID
/// </summary>
public int id { get; set; }
/// <summary>
/// Reason2
/// </summary>
public string value5 { get; set; }
}

1层JSON

    List<RefillData_Model> list = new List<RefillData_Model>();//List存数据
DataTable refilldt = fill.GetFacInfo();
for (int j = 0; j < refilldt.Rows.Count; j++)
{
RefillDataFac_Model refill = new RefillDataFac_Model();
refill.action = refilldt.Rows[j]["action"].ToString();
refill.facility = refilldt.Rows[j]["facility"].ToString();
refill.hSerial = refilldt.Rows[j]["Head_serial"].ToString();
refill.so = refilldt.Rows[j]["so"].ToString();
refill.refno = refilldt.Rows[j]["refno"].ToString();
refill.partNum = refilldt.Rows[j]["partno"].ToString();
refill.slot = refilldt.Rows[j]["slot"].ToString();
refill.qty = refilldt.Rows[j]["planqty"].ToString();
refill.Sdte = refilldt.Rows[j]["sdte"].ToString();
refill.stme = refilldt.Rows[j]["stme"].ToString();
refill.reelcut = refilldt.Rows[j]["reelcut"].ToString();
refill.mdte = refilldt.Rows[j]["mdte"].ToString();
refill.mtme = refilldt.Rows[j]["mtme"].ToString();
refill.soseq = refilldt.Rows[j]["soseq"].ToString();
refill.slotserial = refilldt.Rows[j]["SlotSerial"].ToString();
refilldata.Add(refill);
}
string json = JsonConvert.SerializeObject(refilldata);

以上是3层和1层的JSON数组写法 通过NewtonSoftJson 当然也可以用JSONhelper里面的拼接方法 在需要使用灵活的JSON时可以自己拼接。

反序列化

            List<AbNormallReport_Model> datalist = new List<AbNormallReport_Model>();
datalist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AbNormallReport_Model>>(data);

JSON数组序列化C#方法的更多相关文章

  1. C# Json数组序列化和反序列总结

    1.创建json数组,例: JArray arrFile = new JArray(); arrFile.Add(new JObject() { new JProperty("FilePat ...

  2. curl javaSSm框架中传入json数组的格式方法

    curl与java结合传入get.post,head请求, 比如: curl的地址: curl -l 127.0.0.1:8080/spacobj/core/do?acid=100 -H " ...

  3. 将一个JSON数组[{},{},{}]按一定规则合并到另一个JSON数组[{},{},{}]

    // 将一个JSON数组[{},{},{}]按一定规则合并到另一个JSON数组[{},{},{}] // Object.assign方法的第一个参数是目标对象,后面的参数都是源对象. var list ...

  4. PHP数组缓存:三种方式JSON、序列化和var_export的比较

    使用PHP的站点系统,在面对大数据量的时候不得不引入缓存机制.有一种简单有效的办法是将PHP的对象缓存到文件里.下面我来对这3种缓存方法进行说明和比较. 第一种方法:JSONJSON缓存变量的方式主要 ...

  5. JavaScript的json和Array及Array数组的使用方法

    1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...

  6. json数组的序列化和反序列化json数组的序列化和反序列化

    如题,我就不多说了,自己看代码的,很好理解 using System; using System.Collections.Generic; using System.Web; using System ...

  7. JS解析json数据并将json字符串转化为数组的实现方法

    json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...

  8. jquery $.each遍历json数组方法

    <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/ ...

  9. JSON对象与JSON数组的长度和遍历方法

    JSON对象与JSON数组的长度和遍历方法         1.json对象的长度与遍历                 结构:var json={“name”:”sm”,”sex”:”woman”} ...

随机推荐

  1. IntelliJ IDEA常用快捷键大全

    如果想要非常高效的使用IDEA这款工具,应该掌握图中已被标记的快捷键. 另: 代码实时模板生成:psvm/sout/ifn等 按Tab键快速生成模板. 转载请保留或注明出处:http://www.cn ...

  2. EC20指令

    SIM卡热插拔检测: AT+QSIMSTAT=1          //开启SIM卡热拔插状态报告AT+QSIMDET=1,1或AT+QSIMDET=1,0//开启 SIM卡检测功能当SIM卡拔出或者 ...

  3. Android音频录制MediaRecorder之简易的录音软件实现代码(转)

    原文:http://www.jb51.net/article/46182.htm Android音频录制MediaRecorder之简易的录音软件实现代码 这篇文章主要介绍了Android音频录制Me ...

  4. Java - 实现双向链表

    熟悉一下Java... package ChianTable; import java.util.Scanner; /** * Created by Administrator on 2018/3/2 ...

  5. Codeforces1307C. Cow and Message

    读题,我们知道选1个.选2个的时候是没有冲突的,大于2个的时候就有限制,那么我们观察是否可以把大于2个的情况都转换一下,可以发现,如果有一个串的长度大于2,且出现的次数大于2,那么,组成这个串里必定有 ...

  6. CentOS 下的apache服务器配置与管理

    一.WEB服务器与Apache1.web服务器与网址 2.Apache的历史 3.补充http://www.netcraft.com/可以查看apache服务器的市场占有率同时必须注意的是ngnix, ...

  7. Swift-如何快速学习Swift

    关于本文: 1.说明本文写作的目的 2.整理了Swift的基本语法树 3.看图作文 一.写作目的 昨天看了一个知识专栏,作者讲述的是“如何研究性的学习”.整个课程1个小时9分钟,花了我19块人民币.其 ...

  8. 十七 Spring的JDBC模版:使用开源连接池,DBCP,C3P0

    DBCP的配置以及使用 引入jar包

  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:显示下拉式功能

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. c#数据四种执行方法(ExecuteNonQuery)-----转载

    c#数据四种执行方法(ExecuteNonQuery)   1.使用ExecuteReader()操作数据库 2.使用ExecuteNonQuery()操作数据库 3.使用ExecuteScalar( ...