jquery + json 操作

 jquery 读取集合对象多是要与json进行解析操作的,以下自己经过多方资料查找,终于有一套自己的方式组合.

 1.首先创建web services或一般处理程序,用于显示获取Datatable对象
product.asmx   
 [WebMethod]
- - BigClassName 传递的参数
        public string Test(string BigClassName)  
        {
            System.Text.StringBuilder strwhere = new System.Text.StringBuilder();
            strwhere.Append(" and BigClassName='").Append(BigClassName).Append("'");
            System.Data.DataTable dt = new BLL.smallclass_BLL().GetList(strwhere.ToString());   // 从数据获取Datatable对象
            return ToJson(dt);
        }
----- 这是转换成json格式进行输出显示,因为前台jquery不接受显示DataTable对象;--- 复用性不大
 ///  
        /// Datatable转换为Json 
        ///  
        /// Datatable对象 
        /// Json字符串 
        public static string ToJson(DataTable Adt)
        {
            StringBuilder jsonString = new StringBuilder();
            jsonString.Append("[");
            foreach (DataRow pdr in Adt.Rows)
            {
                jsonString.Append("{");
                jsonString.AppendFormat("\"name\":\"{0}\",\"value\":\"{1}\"", pdr["SmallClassName"].ToString(), pdr["SmallClassName"].ToString());
                jsonString.Append("},");
            }
            jsonString.Remove(jsonString.Length - 1, 1);
            jsonString.Append("]");
            return jsonString.ToString();
        }
- ---这是显示前台jquery代码
 function GetType3(args) {
        var id = "<%=ddltype2.ClientID  %>";   // 这是获取ID号,因为我是在用户控件上测试的,
        $("#" + id).html("");  
        $("#" + id).append("");
        $.ajax({
            type: "post",
            dataType: "json",
            contentType: "application/json;charset=utf-8",
            url: "/Ajax/product.asmx/Test",
            data: "{BigClassName:'" + args + "'}",
            success: function(data) {
                  // 此处是重点,我就是在这个地方弄了好久,如果你直接使用data赋值,那就会获取不到值会弹出undefined
 
var obj =  eval(data.d); 
                $.each(obj, function(field) { alert(obj[field].value); });  
 
               var json = data.d;
                json = eval(json);
                for (var i = 0; i < json.length; i++) {
                    $("#" + id).append("");
                 }
            }
 
        });

转载于:https://www.cnblogs.com/scwyh/p/3188348.html

你可能感兴趣的:(jquery + json 操作)