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”} ...
随机推荐
- 吴裕雄--天生自然ORACLE数据库学习笔记:用户管理与权限分配
create user mr identified by mrsoft default tablespace users temporary tablespace temp; create user ...
- 夯实Java基础(十九)——集合
1.前言 集合在Java中的地位想必大家都知道,不用多BB了.无论是在我们现在的学习中还是在今后的工作中,集合这样一个大家族都无处不在,无处不用.在前面讲到的数组也是一个小的容器,但是数组不是面向对象 ...
- warning:Pointer is missing a nullability type specifier (__nonnull or __nullable)
当我们定义某个属性的时候 如果当前使用的编译器版本比较高(6.3+)的话经常会遇到这样一个警告:warning:Pointer is missing a nullability type speci ...
- Django manager 命令笔记
1. 新建app startapp your_app_name 2. 删除app migrate your_app_name zero 此外还需要删除整个App文件夹,并在settings.py的In ...
- HTML中元素 标签 属性
HTNL中元素是以开始标签开始 结束标签结尾的 如:<p>this is a paragraph </p> <p>是开始标签 </p>是结束标签 ...
- python面向对象之元类
目录 元类 造类 第一阶段 第二阶段 造对象 元类 元类(A) ---> 类(B) ---> 实例(C) 对于实例C而言,它是对象,它的类就是类B 对于类B而言,它其实也是对象,那它的类就 ...
- Visual Studio C++覆盖率测试异常的解决方法
默认的UnitTest可能出现这样的异常 经过查阅资料最终找到了解决办法 步骤如下: 在测试项目右键属性 将配置属性->链接器->调试 生成调试信息修改为如图所示,然后再进行覆盖率测试 就 ...
- 检测皮肤PH值、感知你的便意,健康是可穿戴设备的新风口?
在经历最初的喧嚣与疯狂后,可穿戴设备近年来有些低调和沉寂.换句话说,虽然可穿戴设备销量在持续走高,但从形态和功能上,呈现出高度一致性.这似乎也在证明着,可穿戴设备已成为寻常可见的普通产品而已.不过在迈 ...
- 题解:luogu P3909
这个题拖了快三个月了,只因缺个快速乘(气愤.jpg). 题目链接:P3909 异或之积 你确定没人用前缀和,后缀和吗? 蒟蒻想法与众不同! 我们实验\(A[]={1,2,3,4}\). 这里计不乘6时 ...
- Day1-Luogu-2085
题目描述 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个 ...