JSONC#解析类.doc_第1页
JSONC#解析类.doc_第2页
JSONC#解析类.doc_第3页
JSONC#解析类.doc_第4页
JSONC#解析类.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论