zoukankan      html  css  js  c++  java
  • .net2.0使用json的知识,要点,问题和解决方案

    一:定义

    1. "名称/值"对的集合(名称为字符串类型,值可以是字符串,整数,对象等任意类型)

    2. 值的有序列表(array)

    二:实例,javascript中的json

    1)简单的json

    var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
    alert(User.Name);
    2)值的有序列表(array)
     var userAry= [
    {"subject":"New Draft","senddate":"2008-11-12 17:44","id":"3337","from":"liuyan1@chinahr.com"},
    {"subject":"New Draft","senddate":"2008-11-12 17:44","id":"3336","from":"liuyan1@chinahr.com"},
    {"subject":"New Draft","senddate":"2008-11-12 17:44","id":"3335","from":"liuyan1@chinahr.com"}
    ]
    alert(userAry.length);
    alert(userAry[0].id);
    alert(userAry[0]["id"]);
    3)复杂的json
    var tt={
    "length":{"length":3},
    "a":{"subject":"New Draft","senddate":"2008-11-12 17:44","id":3337,"from":"liuyan1@chinahr.com"},
    "1":{"subject":"New Draft","senddate":"2008-11-12 17:44","id":3336,"from":"liuyan1@chinahr.com"},
    "2":{"subject":"New Draft","senddate":"2008-11-12 17:44","id":3335,"from":liuyan1@chinahr.com}
    }

    alert(tt.length.length);
    alert(tt["a"].id);
    alert(tt[1].id)

    ///

  • 对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
  • 数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
  • 值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
  • 字符串和数字的定义和C或Java基本一致。

  • 输出的JSON字符串里如果有引号,单引号和反斜杠前面加反斜杠“\”如:
    string s="a\\\"b\\\"c d";
    Response.Write("{\"text\":\""+s+"\"}" );

    .net2.0使用Json调用
    using System.Runtime.Serialization.Json;

    DataTable转化成json字符串,去除单引号双引号的问题

       private DataTable getDataTable(string name)
            {
                DataTable dt = new DataTable(name);
                dt.Columns.Add(new DataColumn("name", typeof(string)));
                dt.Columns.Add(new DataColumn("password", typeof(string)));
                DataRow dr;
                for (int i = 0; i < 3; i++)
                {
                    dr = dt.NewRow();
                    dr[0] = i.ToString();
                    dr[1] = "P" + i.ToString();
                    dt.Rows.Add(dr);
                }
                string ss = "dddd' ddddd";
                dr = dt.NewRow();
                dr[0] = ss;
                dr[1] = "hh";
                dt.Rows.Add(dr);


                return dt;

            }

            private string DataTable2Json(DataTable dt)
            {
                StringBuilder jsonBuilder = new StringBuilder();

                jsonBuilder.Append("[");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (i != 0) { jsonBuilder.Append(","); }
                    jsonBuilder.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        jsonBuilder.Append("\'");
                        jsonBuilder.Append(dt.Columns[j].ColumnName);
                        jsonBuilder.Append("\':\'");
                        jsonBuilder.Append(dt.Rows[i][j].ToString().Replace("\"","").Replace("\'",""));
                        jsonBuilder.Append("\',");
                    }
                    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                    jsonBuilder.Append("}");
                }
                jsonBuilder.Append("]");

                return jsonBuilder.ToString();
            }


     

查看全文
  • 相关阅读:
    python例子-开始一个Django项目
    python例子-Django常用命令
    PHP
    Yii 关于 find findAll 查找出制定的字段的方法
    new static() 和 new self() 的区别异同
    Android
    PHP里10个鲜为人知但却非常有用的函数
    PHP 各种函数
    Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
    PHP中使用curlL实现GET和POST请求的方法
  • 原文地址:https://www.cnblogs.com/top5/p/1582458.html
  • Copyright © 2011-2022 走看看