




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
好久没写东西了,又开始写代码。今天写了点东西记下来:现在json因为轻型,越来越流行,部门内部的数据标准趋向于json,所以开始学习。本次工作内容是要将以下数据解析成.Net可以使用的数据,返回的数据除了header,其他的都是可变的,也就是说结构不是固定的。完全由用户选择,所以选择了生成DataTable。Json数据格式如下:dataSet:header: returnCode:0, errorInfo:HTTP请求错误, version:V1.0R010, totalRows:2000, returnRows:20,fieldDefine: assetId:string, serverIdcId:int, inputTime:datetime,data:row: AssetId:TCNS2006888, ServerIdcId:1, InputTime:2008-12-12, AssetId:TCNS2006889, ServerIdcId:2, InputTime:2008-1-1解析的类:using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Web.Script.Serialization;namespace Tencent.Itil.Cmsi.Common public class GeneralSearchResult public Header header = new Header(); private DataTable fieldDefine = new DataTable(); / / 返回的数据结构定义,无数据 / public DataTable FieldDefine get return fieldDefine; set fieldDefine = value; private DataTable retrunData = new DataTable(); / / 返回的数据,格式为DataTable,结构和FieldDefine中的结构一样 / public DataTable RetrunData get return retrunData; set retrunData = value; / / 将json数据转换为定义好的对象,数据转换为DataTable / / / public static GeneralSearchResult GetTransformData(string jsonText) GeneralSearchResult gsr = new GeneralSearchResult(); JavaScriptSerializer s = new JavaScriptSerializer(); Dictionary JsonData = (Dictionary)s.DeserializeObject(jsonText); Dictionary dataSet = (Dictionary)JsonDatadataSet; Dictionary header = (Dictionary)dataSetheader; Dictionary fieldDefine = (Dictionary)dataSetheader; Dictionary data = (Dictionary)dataSetdata; object rows = (object)datarow; gsr.header.Version = headerversion.ToString(); gsr.header.ErrorInfo = headererrorInfo.ToString(); gsr.header.ReturnCode = headerreturnCode.ToString(); gsr.header.ReturnRows = Convert.ToInt16(headerreturnRows); gsr.header.TotalRows = Convert.ToInt16(headertotalRows); Dictionary dicFieldDefine = (Dictionary)dataSetfieldDefine; foreach (KeyValuePair ss in dicFieldDefine) gsr.FieldDefine.Columns.Add(ss.Key, typeof(string); gsr.RetrunData = gsr.FieldDefine.Clone(); foreach (object ob in rows) Dictionary val = (Dictionary)ob; DataRow dr = gsr.RetrunData.NewRow(); foreach (KeyValuePair sss in val) drsss.Key = sss.Value; gsr.RetrunData.Rows.Add(dr); return gsr; / / 数据文件头定义 / public class Header private string version; / / 版本 / public string Version get return version; set version = value; private string returnCode; / / 结果码,0为正常,否则为有错误 / public string ReturnCode get return returnCode; set returnCode = value; private string errorInfo; / / 如果ReturnCode为非0时的错误信息 / public string ErrorInfo get return errorInfo; set errorInfo = value; private int totalRows; / / 查询结果总行数 / public int TotalRows get return totalRows; set totalRows = value; private int returnRows; / / 返回的数据行数 / public int ReturnRows get return returnRo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 增资扩股暨股东入股合同
- 2025授权拍卖合同范本委托书
- 2025专家聘用合同模板下载
- 2025国内融资租赁合同模板
- 2025年度专业计算机技术培训合同范本参考
- 2025建筑工程项目合作合同书范本
- 2025【合同范本】企业融资合同模板
- 山东高三联考试题及答案
- 初级病理医师考试题库及答案
- 2025年第三方物流运输合同范本
- 2025年中国物流集团国际物流事业部招聘面试经验及模拟题集
- 乡镇安全培训课件
- 2025年航空业面试者必看航空公司招聘笔试预测试题及答案
- 2025年全国企业员工全面质量管理知识竞赛题及参考答案
- 2025年秋季开学典礼诗歌朗诵稿:纪念抗战胜利八十周年
- 2025秋仁爱科普版(2024)七年级上册英语教学计划
- 《非物质文化遗产概论(第三版)》全套教学课件
- 2025年广东省中考英语试卷深度评析及2026年备考策略
- 2025年信息安全应急演练记录
- 社区医院创建汇报课件
- 轴对称及其性质第1课时课件2025-2026学年人教版数学+八年级上册
评论
0/150
提交评论