• jquery json asp.net 将各种对象:list ..等转换成


    publicvoid ProcessRequest(HttpContext context)

        {

            context.Response.ContentType
    ="text/plain";

            DataTable data2
    = myData();



           
    string str = DataTableToJson("myJson", data2);//构建的json数据



            context.Response.Write(str);

        }



       
    publicbool IsReusable

        {

           
    get

            {

               
    returnfalse;

            }

        }





       
    //用datatable做数据,数据模拟

        public DataTable myData()

        {

            DataTable dt
    =new DataTable();

            DataColumn dc;

            DataRow dr;



            dc
    =new DataColumn("Name", System.Type.GetType("System.String"));

            dt.Columns.Add(dc);

            dc
    =new DataColumn("Email", System.Type.GetType("System.String"));

            dt.Columns.Add(dc);

            dc
    =new DataColumn("Phon", System.Type.GetType("System.String"));

            dt.Columns.Add(dc);

            dc
    =new DataColumn("Move", System.Type.GetType("System.String"));

            dt.Columns.Add(dc);

            dc
    =new DataColumn("Pan", System.Type.GetType("System.String"));

            dt.Columns.Add(dc);

            dc
    =new DataColumn("select", System.Type.GetType("System.String"));

            dt.Columns.Add(dc);

           
    for (int i =1; i <7; i++)

            {

                dr
    = dt.NewRow();

                dr[
    "Name"] ="Name"+ i.ToString();

                dr[
    "Email"] ="Email"+ i.ToString();

                dr[
    "Phon"] ="Phon"+ i.ToString();

                dr[
    "Move"] ="Move"+ i.ToString();

                dr[
    "Pan"] ="Pan"+ i.ToString();

                dr[
    "select"] = i.ToString();

                dt.Rows.Add(dr);

            }



           
    int count = dt.Rows.Count;

           
    return dt;

        }



       
    //将datatable数据转换成JSON数据

        publicstring DataTableToJson(string jsonName, DataTable dt)

        {

            StringBuilder Json
    =new StringBuilder();

            Json.Append(
    "[");

           
    if (dt.Rows.Count >0)

            {

               
    for (int i =0; i < dt.Rows.Count; i++)

                {

                    Json.Append(
    "{");

                   
    for (int j =0; j < dt.Columns.Count; j++)

                    {

                        Json.Append(dt.Columns[j].ColumnName.ToString()
    +":\""+ dt.Rows[i][j].ToString() +"\"");

                       
    if (j < dt.Columns.Count -1)

                        {

                            Json.Append(
    ",");

                        }

                    }

                    Json.Append(
    "}");

                   
    if (i < dt.Rows.Count -1)

                    {

                        Json.Append(
    ",");

                    }

                }

            }

            Json.Append(
    "]");

           
    return Json.ToString();

        }



       
    //列表数据转换到json数据

        publicstring ObjectToJson<T>(string jsonName, IList<T> IL)

        {

            StringBuilder Json
    =new StringBuilder();

            Json.Append(
    "[");

           
    if (IL.Count >0)

            {

               
    for (int i =0; i < IL.Count; i++)

                {

                    T obj
    = Activator.CreateInstance<T>();

                    Type type
    = obj.GetType();

                    PropertyInfo[] pis
    = type.GetProperties();

                    Json.Append(
    "{");

                   
    for (int j =0; j < pis.Length; j++)

                    {

                        Json.Append(pis[j].Name.ToString()
    +":\""+ pis[j].GetValue(IL[i], null) +"\"");

                       
    if (j < pis.Length -1)

                        {

                            Json.Append(
    ",");

                        }

                    }

                    Json.Append(
    "}");

                   
    if (i < IL.Count -1)

                    {

                        Json.Append(
    ",");

                    }

                }

            }

            Json.Append(
    "]");

           
    return Json.ToString();

        }



         页面Default.aspx

     

    function GetData()
    {
    $.getJSON(
    "JsonData.ashx",//产生Json数据的服务端页面
    function(json)
    {
    for(var i=0;i<json.length;i++)
    {
    //开始
    var index=-1;
    var txtTRLastIndex = findObj("txtTRLastIndex",document);
    var rowID = parseInt(txtTRLastIndex.value);
    var signFrame = findObj("SignFrame",document);
    //添加行
    var newTR = signFrame.insertRow(signFrame.rows.length);
    newTR.id
    ="SignItem"+ rowID;
    //添加列:序号
    var newNameTD=newTR.insertCell(0);
    //添加列内容
    newNameTD.innerHTML = newTR.rowIndex.toString();
    //添加列:姓名
    var newNameTD=newTR.insertCell(1);
    //添加列内容
    newNameTD.innerHTML ="<input name='txtName"+ rowID +"' id='txtName"+ rowID +"' value='"+json[i].Name+"' type='text' size='12' />";
    //添加列:电子邮箱
    var newEmailTD=newTR.insertCell(2);
    //添加列内容
    newEmailTD.innerHTML ="<input name='txtEMail"+ rowID +"' id='txtEmail"+ rowID +"' value='"+json[i].Email+"' type='text' size='20' />";
    //添加列:电话
    var newTelTD=newTR.insertCell(3);
    //添加列内容
    newTelTD.innerHTML ="<input name='txtTel"+ rowID +"' id='txtTel"+ rowID +"' value='"+json[i].Phon+"' type='text' size='10' />";
    //添加列:手机
    var newMobileTD=newTR.insertCell(4);
    //添加列内容
    newMobileTD.innerHTML ="<input name='txtMobile"+ rowID +"' id='txtMobile"+ rowID +"' value='"+json[i].Move+"' type='text' size='12' />";
    //添加列:公司名
    var newCompanyTD=newTR.insertCell(5);
    //添加列内容
    newCompanyTD.innerHTML ="<input name='txtCompany"+ rowID +"' id='txtCompany"+ rowID +"' value='"+json[i].Pan+"' type='text' size='20' />";

    //添加下拉框
    var newCompanyTD=newTR.insertCell(6);
    newCompanyTD.innerHTML
    ="<select id='Select"+rowID+"'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option> </select>";

    //动态选中下拉框
    for(var j=0;j<document.getElementById("Select"+rowID).options.length;j++)
    {
    if(document.getElementById("Select"+rowID).options[j].text==json[i].select)
    index
    =j;
    }
    if(index>=0)
    document.getElementById(
    "Select"+rowID).options[index].selected=true;


    //添加列:删除按钮
    var newDeleteTD=newTR.insertCell(7);
    //添加列内容
    newDeleteTD.innerHTML ="<div align='center' style='40px'><a href='javascript:;' onclick=\"DeleteSignRow('SignItem"+ rowID +"')\">删除</a></div>";
    //将行号推进下一行
    txtTRLastIndex.value = (rowID +1).toString();
    }
    }


    )
    }

     

    -----------------------------------------------------

    ---------------------------------------------------

    datatable与json的转化

    1将DataTable或Ilist<>转换成JSON格式

     

    using System;
    using System.Data;
    using System.Text;
    using System.Collections.Generic;
    using System.Reflection;

    ///<summary>
    /// 将DataTable或Ilist<>转换成JSON格式
    ///</summary>
    publicclass ToJson
    {
    public ToJson()
    {

    }

    //DataTable转成Json
    publicstaticstring DataTableToJson(string jsonName, DataTable dt)
    {
    StringBuilder Json
    =new StringBuilder();
    Json.Append(
    "{\""+ jsonName +"\":[");
    if (dt.Rows.Count >0)
    {
    for (int i =0; i < dt.Rows.Count; i++)
    {
    Json.Append(
    "{");
    for (int j =0; j < dt.Columns.Count; j++)
    {
    Json.Append(
    "\""+ dt.Columns[j].ColumnName.ToString() +"\":\""+ dt.Rows[i][j].ToString() +"\"");
    if (j < dt.Columns.Count -1)
    {
    Json.Append(
    ",");
    }
    }
    Json.Append(
    "}");
    if (i < dt.Rows.Count -1)
    {
    Json.Append(
    ",");
    }
    }
    }
    Json.Append(
    "]}");
    return Json.ToString();
    }

    //List转成json
    publicstaticstring ObjectToJson<T>(string jsonName, IList<T> IL)
    {
    StringBuilder Json
    =new StringBuilder();
    Json.Append(
    "{\""+ jsonName +"\":[");
    if (IL.Count >0)
    {
    for (int i =0; i < IL.Count; i++)
    {
    T obj
    = Activator.CreateInstance<T>();
    Type type
    = obj.GetType();
    PropertyInfo[] pis
    = type.GetProperties();
    Json.Append(
    "{");
    for (int j =0; j < pis.Length; j++)
    {
    Json.Append(
    "\""+ pis[j].Name.ToString() +"\":\""+ pis[j].GetValue(IL[i], null) +"\"");
    if (j < pis.Length -1)
    {
    Json.Append(
    ",");
    }
    }
    Json.Append(
    "}");
    if (i < IL.Count -1)
    {
    Json.Append(
    ",");
    }
    }
    }
    Json.Append(
    "]}");
    return Json.ToString();
    }
    }


    2各种数据集转换为json
     

    ///<summary>
    /// 对象转换为Json字符串
    ///</summary>
    ///<param name="jsonObject">对象</param>
    ///<returns>Json字符串</returns>
    publicstaticstring ToJson(object jsonObject)
    {
    string jsonString ="{";
    PropertyInfo[] propertyInfo
    = jsonObject.GetType().GetProperties();
    for (int i =0; i < propertyInfo.Length; i++)
    {
    object objectValue = propertyInfo[i].GetGetMethod().Invoke(jsonObject, null);
    string value =string.Empty;
    if (objectValue is DateTime || objectValue is Guid || objectValue is TimeSpan)
    {
    value
    ="'"+ objectValue.ToString() +"'";
    }
    elseif(objectValue isstring)
    {
    value
    ="'"+ ToJson(objectValue.ToString()) +"'";
    }
    elseif (objectValue is IEnumerable)
    {
    value
    = ToJson((IEnumerable)objectValue);
    }
    else
    {
    value
    = ToJson(objectValue.ToString());
    }
    jsonString
    +="\""+ ToJson(propertyInfo[i].Name) +"\":"+ value +",";
    }
    return Json.DeleteLast(jsonString) +"}";
    }
    ///<summary>
    /// 对象集合转换Json
    ///</summary>
    ///<param name="array">集合对象</param>
    ///<returns>Json字符串</returns>
    publicstaticstring ToJson(IEnumerable array)
    {
    string jsonString ="[";
    foreach (object item in array)
    {
    jsonString
    += Json.ToJson(item) +",";
    }
    return Json.DeleteLast(jsonString) +"]";
    }
    ///<summary>
    /// 普通集合转换Json
    ///</summary>
    ///<param name="array">集合对象</param>
    ///<returns>Json字符串</returns>
    publicstaticstring ToArrayString(IEnumerable array)
    {
    string jsonString ="[";
    foreach (object item in array)
    {
    jsonString
    = ToJson(item.ToString()) +",";
    }
    return Json.DeleteLast(jsonString) +"]";
    }
    ///<summary>
    /// 删除结尾字符
    ///</summary>
    ///<param name="str">需要删除的字符</param>
    ///<returns>完成后的字符串</returns>
    privatestaticstring DeleteLast(string str)
    {
    if (str.Length >1)
    {
    return str.Substring(0, str.Length -1);
    }
    return str;
    }
    ///<summary>
    /// Datatable转换为Json
    ///</summary>
    ///<param name="table">Datatable对象</param>
    ///<returns>Json字符串</returns>
    publicstaticstring ToJson(DataTable table)
    {
    string jsonString ="[";
    DataRowCollection drc
    = table.Rows;
    for (int i =0; i < drc.Count; i++)
    {
    jsonString
    +="{";
    foreach (DataColumn column in table.Columns)
    {
    jsonString
    +="\""+ ToJson(column.ColumnName) +"\":";
    if (column.DataType ==typeof(DateTime) || column.DataType ==typeof(string))
    {
    jsonString
    +="\""+ ToJson(drc[i][column.ColumnName].ToString()) +"\",";
    }
    else
    {
    jsonString
    += ToJson(drc[i][column.ColumnName].ToString()) +",";
    }
    }
    jsonString
    = DeleteLast(jsonString) +"},";
    }
    return DeleteLast(jsonString) +"]";
    }
    ///<summary>
    /// DataReader转换为Json
    ///</summary>
    ///<param name="dataReader">DataReader对象</param>
    ///<returns>Json字符串</returns>
    publicstaticstring ToJson(DbDataReader dataReader)
    {
    string jsonString ="[";
    while (dataReader.Read())
    {
    jsonString
    +="{";

    for (int i =0; i < dataReader.FieldCount; i++)
    {
    jsonString
    +="\""+ ToJson(dataReader.GetName(i)) +"\":";
    if (dataReader.GetFieldType(i) ==typeof(DateTime) || dataReader.GetFieldType(i) ==typeof(string))
    {
    jsonString
    +="\""+ ToJson(dataReader[i].ToString()) +"\",";
    }
    else
    {
    jsonString
    += ToJson(dataReader[i].ToString()) +",";
    }
    }
    jsonString
    = DeleteLast(jsonString) +"}";
    }
    dataReader.Close();
    return DeleteLast(jsonString) +"]";
    }
    ///<summary>
    /// DataSet转换为Json
    ///</summary>
    ///<param name="dataSet">DataSet对象</param>
    ///<returns>Json字符串</returns>
    publicstaticstring ToJson(DataSet dataSet)
    {
    string jsonString ="{";
    foreach (DataTable table in dataSet.Tables)
    {
    jsonString
    +="\""+ ToJson(table.TableName) +"\":"+ ToJson(table) +",";
    }
    return jsonString = DeleteLast(jsonString) +"}";
    }
    ///<summary>
    /// String转换为Json
    ///</summary>
    ///<param name="value">String对象</param>
    ///<returns>Json字符串</returns>
    publicstaticstring ToJson(string value)
    {
    if (string.IsNullOrEmpty(value))
    {
    returnstring.Empty;
    }

    string temstr;
    temstr
    = value;
    temstr
    = temstr.Replace("{", "").Replace("}", "").Replace(":", "").Replace(",", "").Replace("[", "").Replace("]", "").Replace(";", "").Replace("\n", "<br/>").Replace("\r", "");

    temstr
    = temstr.Replace("\t", "");
    temstr
    = temstr.Replace("'", "\'");
    temstr
    = temstr.Replace(@"\", @"\\");
    temstr
    = temstr.Replace("\"", "\"\"");
    return temstr;
    }
  • 相关阅读:
    在二进制与文本之间转换plist文件
    iOS 音频分贝的计算
    iOS 圆形水波浪效果实现
    iOS画圆、画线
    iOS IM开发准备工作(四)CocoaAsyncSocket的使用
    iOS IM开发准备工作(三)乱说Socket
    iOS IM开发准备工作(二)protobuf-objc安装及使用
    iOS IM开发准备工作(一)XML解析
    iOS IM开发blog写作计划
    西游记倒着看。。我从贴吧看来的
  • 原文地址:https://www.cnblogs.com/a13971240/p/3079602.html
Copyright © 2020-2023  润新知