復制代碼 代碼如下:
 
{"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(); 
/// <summary> 
/// 返回的數據結構定義,無數據 
/// </summary> 
public DataTable FieldDefine 
{ 
get { return fieldDefine; } 
set { fieldDefine = value; } 
} 
private DataTable retrunData = new DataTable(); 
/// <summary> 
/// 返回的數據,格式為DataTable,結構和FieldDefine中的結構一樣 
/// </summary> 
public DataTable RetrunData 
{ 
get { return retrunData; } 
set { retrunData = value; } 
} 
/// <summary> 
/// 將json數據轉換為定義好的對象,數據轉換為DataTable 
/// </summary> 
/// <param></param> 
/// <returns></returns> 
public static GeneralSearchResult GetTransformData(string jsonText) 
{ 
GeneralSearchResult gsr = new GeneralSearchResult(); 
JavaScriptSerializer s = new JavaScriptSerializer(); 
Dictionary<string, object> JsonData = (Dictionary<string, object>)s.DeserializeObject(jsonText); 
Dictionary<string, object> dataSet = (Dictionary<string, object>)JsonData["dataSet"]; 
Dictionary<string, object> header = (Dictionary<string, object>)dataSet["header"]; 
Dictionary<string, object> fieldDefine = (Dictionary<string, object>)dataSet["header"]; 
Dictionary<string, object> data = (Dictionary<string, 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<string, object> dicFieldDefine = (Dictionary<string, object>)dataSet["fieldDefine"]; 
foreach (KeyValuePair<string, object> ss in dicFieldDefine) 
{ 
gsr.FieldDefine.Columns.Add(ss.Key, typeof(string)); 
} 
gsr.RetrunData = gsr.FieldDefine.Clone(); 
foreach (object ob in rows) 
{ 
Dictionary<string, object> val = (Dictionary<string, object>)ob; 
DataRow dr = gsr.RetrunData.NewRow(); 
foreach (KeyValuePair<string, object> sss in val) 
{ 
dr[sss.Key] = sss.Value; 
} 
gsr.RetrunData.Rows.Add(dr); 
} 
return gsr; 
} 
/// <summary> 
/// 數據文件頭定義 
/// </summary> 
public class Header 
{ 
private string version; 
/// <summary> 
/// 版本 
/// </summary> 
public string Version 
{ 
get { return version; } 
set { version = value; } 
} 
private string returnCode; 
/// <summary> 
/// 結果碼,0為正常,否則為有錯誤 
/// </summary> 
public string ReturnCode 
{ 
get { return returnCode; } 
set { returnCode = value; } 
} 
private string errorInfo; 
/// <summary> 
/// 如果ReturnCode為非0時的錯誤信息 
/// </summary> 
public string ErrorInfo 
{ 
get { return errorInfo; } 
set { errorInfo = value; } 
} 
private int totalRows; 
/// <summary> 
/// 查詢結果總行數 
/// </summary> 
public int TotalRows 
{ 
get { return totalRows; } 
set { totalRows = value; } 
} 
private int returnRows; 
/// <summary> 
/// 返回的數據行數 
/// </summary> 
public int ReturnRows 
{ 
get { return returnRows; } 
set { returnRows = value; } 
} 
} 
} 
} 
新聞熱點
疑難解答
圖片精選