新聞中心
Json數(shù)據(jù)格式在日常工作中還是非常實(shí)用的,只需要Json數(shù)據(jù)就可以了,如果對(duì)Json數(shù)據(jù)不太了解,那就必須先要對(duì)下面就對(duì) 進(jìn)行學(xué)習(xí),下面就對(duì)Json數(shù)據(jù)格式的代碼進(jìn)行系統(tǒng)的分析與研究。。#t#

為澄邁等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及澄邁網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、澄邁網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
看到另一篇C#解析Json的類 的文章現(xiàn)在json因?yàn)檩p型,越來越流行,部門內(nèi)部的數(shù)據(jù)標(biāo)準(zhǔn)趨向于json,所以開始學(xué)習(xí)。本次工作內(nèi)容是要將以下數(shù)據(jù)解析成.Net可以使用的數(shù)據(jù),返回的數(shù)據(jù)除了header,其他的都是可變的,也就是說結(jié)構(gòu)不是固定的。完全由用戶選擇,所以選擇了生成DataTable。
Json數(shù)據(jù)格式如下:
- 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();
- ///
- /// 返回的數(shù)據(jù)結(jié)構(gòu)定義,無(wú)數(shù)據(jù)
- ///
- public DataTable FieldDefine
- {
- get { return fieldDefine; }
- set { fieldDefine = value; }
- }
- private DataTable retrunData = new DataTable();
- ///
- /// 返回的數(shù)據(jù),格式為DataTable,結(jié)構(gòu)和FieldDefine中的結(jié)構(gòu)一樣
- ///
- public DataTable RetrunData
- {
- get { return retrunData; }
- set { retrunData = value; }
- }
- ///
- /// 將json數(shù)據(jù)轉(zhuǎn)換為定義好的對(duì)象,數(shù)據(jù)轉(zhuǎn)換為DataTable
- ///
- /// name="jsonText">
- ///
- public static GeneralSearchResult GetTransformData(string jsonText)
- {
- GeneralSearchResult gsr = new GeneralSearchResult();
- JavaScriptSerializer s = new JavaScriptSerializer();
- Dictionary
, object> JsonData = (Dictionary , object>)s.DeserializeObject(jsonText); - Dictionary
, object> dataSet = (Dictionary , object>)JsonData["dataSet"]; - Dictionary
, object> header = (Dictionary , object>)dataSet["header"]; - Dictionary
, object> fieldDefine = (Dictionary , object>)dataSet["header"]; - Dictionary
, object> data = (Dictionary , object>)dataSet["data"]; - object[] rows = (object[])data["row"];
- gsr.header.Version = header["version"].ToString();
- gsr.header.ErrorInfo = header["errorInfo"].ToString();
- gsr.header.ReturnCode = header["returnCode"].ToString();
- gsr.header.ReturnRows = Convert.ToInt16(header["returnRows"]);
- gsr.header.TotalRows = Convert.ToInt16(header["totalRows"]);
- Dictionary
, object> dicFieldDefine = (Dictionary , object>)dataSet["fieldDefine"]; - foreach (KeyValuePair
, object> ss in dicFieldDefine) - {
- gsr.FieldDefine.Columns.Add(ss.Key, typeof(string));
- }
- gsrgsr.RetrunData = gsr.FieldDefine.Clone();
- foreach (object ob in rows)
- {
- Dictionary
, object> val = (Dictionary , object>)ob; - DataRow dr = gsr.RetrunData.NewRow();
- foreach (KeyValuePair
, object> sss in val) - {
- dr[sss.Key] = sss.Value;
- }
- gsr.RetrunData.Rows.Add(dr);
- }
- return gsr;
- }
- ///
- /// 數(shù)據(jù)文件頭定義
- ///
- public class Header
- {
- private string version;
- ///
- /// 版本
- ///
- public string Version
- {
- get { return version; }
- set { version = value; }
- }
- private string returnCode;
- ///
- /// 結(jié)果碼,0為正常,否則為有錯(cuò)誤
- ///
- public string ReturnCode
- {
- get { return returnCode; }
- set { returnCode = value; }
- }
- private string errorInfo;
- ///
- /// 如果ReturnCode為非0時(shí)的錯(cuò)誤信息
- ///
- public string ErrorInfo
- {
- get { return errorInfo; }
- set { errorInfo = value; }
- }
- private int totalRows;
- ///
- /// 查詢結(jié)果總行數(shù)
- ///
- public int TotalRows
- {
- get { return totalRows; }
- set { totalRows = value; }
- }
- private int returnRows;
- ///
- /// 返回的數(shù)據(jù)行數(shù)
- ///
- public int ReturnRows
- {
- get { return returnRows; }
- set { returnRows = value; }
- }
- }
- }
- }
分享文章:探索非同凡響的Json數(shù)據(jù)格式說明
URL分享:http://fisionsoft.com.cn/article/coihoed.html


咨詢
建站咨詢
