/// <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. NLP的比赛和数据集

    整理了NLP领域的比赛.数据集.模型 比赛 网站 主办方(作者) decaNLP http://decanlp.com/ Salesforce CLUE https://github.com/CLUE ...

  2. AWS-DDNS

    1. DDNS 2. 在 Linux 实例上设置动态 DNS 2.1 Ubuntu 2.2 Amazon Linux 2 2.3 Arch Linux 2.4 其他Linux系统 3. 更多相关 1. ...

  3. UniGUI之ServerModule常用设置(07)

    主要有两个设置,它是一个单独的, 这意味着它只在每个应用程序中创建一次. 它主要用于配置各种服务器设置.不能将组件放在ServerModule上. 如前所述, ServerModule 是一个单一的, ...

  4. 135、Java中的静态块,构造方法和构造块

    01.代码如下: package TIANPAN; class Book { static String msg; // static属性,暂不封装 public Book() { // 构造方法 S ...

  5. Kibana7.3.2与ElasticSearch7.3.2的集成

    上接: Ubuntu18.04 ElasticSearch7.3.2集群搭建 上传二进制包解压到指定目录, 修改目录名 tar -xzvf tar xzvf kibana-6.3.2-linux-x8 ...

  6. 初识PromQL

    初识PromQL Prometheus通过指标名称(metrics name)以及对应的一组标签(labelset)唯一定义一条时间序列.指标名称反映了监控样本的基本标识,而label则在这个基本特征 ...

  7. Ajax--jQuery使用Ajax

    1.jQuery对Ajax操作进行了封装,在jQuery最底层的方法是$.ajax(),第二层是 load() , $.get() 和 $.post(),第三层是 $.getScript() 和 $. ...

  8. computed、methods、watch

    computed:计算属性将被混入到 Vue 实例中.所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 实例. methods:methods 将被混入到 Vue 实例中 ...

  9. 「译」forEach循环中你不知道的3件事

    前言 本文925字,阅读大约需要7分钟. 总括: forEach循环中你不知道的3件事. 原文地址:3 things you didn't know about the forEach loop in ...

  10. mutiset的简单介绍转载

    原文链接:https://blog.csdn.net/sodacoco/article/details/84798621        c++语言中,multiset是<set>库中一个非 ...