欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net(C#)解析Json的类代码】,下面是详细的讲解!
asp.net(C#)解析Json的类代码
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 name="jsonText"></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; }
}
}
}
}
关于asp.net(C#)解析Json的类代码的用户互动如下:
相关问题:asp.net c#后台代码返回json是[[\"2\",\"角色名\"]...
答:你用C#接收这个JSON吗?如果是的话,给你点参考代码: var jss = new JavaScriptSerializer(); var x = jss.Deserialize(myString); x就是一个转换的结果,需要引用:System.Web.Script.Serialization; >>详细
相关问题:asp.net c#后台代码返回json是[[\"2\",\"濮阳乐荷\...
答:可以放在一个dictonary里 比如: var json = "{ 'firstName': 'Brett' }"; var serializer = new JavaScriptSerializer(); var result = serializer.Deserialize(json); 同时要加引用,System.web.extensions using System.Web.Script.Serializa... >>详细
相关问题:求Asp.net解析Json串的方法
答:是要在后台用C#代码就解析么?是的话,可以用Newtosoft.json这个类库,挺好使的,我现在项目中的json序列化,反序列化用的都是它。 要是在前台单纯用Javascript解析的话,可以使用json2.js这个库。如果,你前台用了其他的类库,例如:Jquery,kn... >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
