JSON数组序列化C#方法
/// <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#方法的更多相关文章
- C# Json数组序列化和反序列总结
1.创建json数组,例: JArray arrFile = new JArray(); arrFile.Add(new JObject() { new JProperty("FilePat ...
- curl javaSSm框架中传入json数组的格式方法
curl与java结合传入get.post,head请求, 比如: curl的地址: curl -l 127.0.0.1:8080/spacobj/core/do?acid=100 -H " ...
- 将一个JSON数组[{},{},{}]按一定规则合并到另一个JSON数组[{},{},{}]
// 将一个JSON数组[{},{},{}]按一定规则合并到另一个JSON数组[{},{},{}] // Object.assign方法的第一个参数是目标对象,后面的参数都是源对象. var list ...
- PHP数组缓存:三种方式JSON、序列化和var_export的比较
使用PHP的站点系统,在面对大数据量的时候不得不引入缓存机制.有一种简单有效的办法是将PHP的对象缓存到文件里.下面我来对这3种缓存方法进行说明和比较. 第一种方法:JSONJSON缓存变量的方式主要 ...
- JavaScript的json和Array及Array数组的使用方法
1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...
- json数组的序列化和反序列化json数组的序列化和反序列化
如题,我就不多说了,自己看代码的,很好理解 using System; using System.Collections.Generic; using System.Web; using System ...
- JS解析json数据并将json字符串转化为数组的实现方法
json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...
- jquery $.each遍历json数组方法
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/ ...
- JSON对象与JSON数组的长度和遍历方法
JSON对象与JSON数组的长度和遍历方法 1.json对象的长度与遍历 结构:var json={“name”:”sm”,”sex”:”woman”} ...
随机推荐
- Duilib XML嵌套/自定义控件
转载:https://www.jianshu.com/p/0fe8610dcc8d // https://github.com/Washington-DC/Duilib-ListView //这是 ...
- Spark入门:第2节 Spark集群安装:1 - 3;第3节 Spark HA高可用部署:1 - 2
三. Spark集群安装 3.1 下载spark安装包 下载地址spark官网:http://spark.apache.org/downloads.html 这里我们使用 spark-2.1.3-bi ...
- 搭建私有CA并实现证书颁发
一.搭建私有CA服务器 1.安装包 # yum -y install openssl 2.生成密钥对儿 # cd /etc/pki/CA # (umask 077;openssl genrsa -ou ...
- 调用百度汇率api 获取各国的汇率值
设置一个定时任务,每天更新汇率java代码如下 package com.thinkgem.jeesite.modules.huiLvApi.service; import java.io.Buffer ...
- Systemverilog for design 笔记(五)
转载请标明出处 第一章 System Verilog过程块.任务和函数 1.1. verilog通用目的always过程块(procedural block)(可综合) always过程块的综合 ...
- word无法切换中文输入法的解决方法
问题: 在word编辑文字的时候,莫名其妙地出现只能输入英文字母无法输入中文的现象,输入法状态条也不显示,而输入法是正常的(在其他编辑器中可正常输入汉字) 解决方法如下:word 2003:菜单工具- ...
- [aac @ ...] Specified sample format s16 is invalid or not supported
在使用FFmpeg打开编码器的时候出现以下错误: [aac @ 000001da19fd7200] Specified sample format s16 is invalid or not supp ...
- Charles + Android 抓取Https数据包 (适用于Android 6.0及以下)
通过Charles代理,我们能很轻易的抓取手机的Http请求,因为Http属于明文传输,所以我们能直接获取到我们要抓取的内容.但是Https内容本身就是加密的,这时我们会发现内容是加密的了.本文我们来 ...
- JS中字符串的编码 解码
DEPTNAME 是一个字符串 编码: DEPTNAME = encodeURI(encodeURI(DEPTNAME)); 解码: DEPTNAME = decodeURI(DEPTNAME,&qu ...
- rhel7 系统服务——unit(单元)
Linux内核版本从3.10后开始使用systemd管理服务,这也是系统开机后的第一个服务.systemd通过unit单元文件来管理服务. 它保存了服务.设备.挂载点和操作系统其他信息的配置文件,并能 ...