dojo从asp.net中获取json数据

简介:

搞来有搞去终于有了个结果,主要是一开始犯了一些低级错误。

对于json不太了解的童鞋,可以看看这个:http://www.dreamdu.com/blog/2008/10/19/json_in_javascript/

这个例子中主要是从数据库中读取数据,转换成JSON格式,传递给前端,废话少说上代码:


protected void Page_Load(object sender, EventArgs e)
        {
             string b = Request["callback"];


            string name = Context.Request["name"];
            //数据库操作
            SqlConnection thisConnection = new SqlConnection("Data Source=localhost;Initial Catalog=commodities; uid=sa;Password=123");
            string command = "select * from InterestStore where UserID = " + name;
            SqlDataAdapter thisAdapter = new SqlDataAdapter(command, thisConnection);
            SqlCommandBuilder thisCommandBuilder = new SqlCommandBuilder(thisAdapter);
            DataSet thisDataSet = new DataSet();
            thisAdapter.Fill(thisDataSet, "IStore");
            //将数据表转换成JSON数据
            string ss = GetJson(thisDataSet, "IStore");
           //返回到前端
            Response.Write(ss);
            Response.End();//Response.End把前面的内容都输出了,阻止了后面html相关内容的输出
        }

下面是将数据转化成JSON代码(改了好长时间,哈哈)


/// <summary>
        /// 获取Json数据
        /// </summary>
        /// <param name="dSet">数据集</param>
        /// <param name="strTableName">表名</param>
        /// <returns></returns>
        private string GetJson(DataSet dSet, string strTableName)
        {
            StringBuilder sBuilder = new StringBuilder();

            sBuilder.Append("{");
            //sBuilder.Append(" " + strTableName + ":{");
            sBuilder.Append("\"" + strTableName +"\":[");

            try {
                for (int i = 0; i < dSet.Tables[strTableName].Rows.Count; i++)
                {
                    sBuilder.Append("{");
                    for (int j = 0; j < dSet.Tables[strTableName].Columns.Count; j++)
                    {
                        sBuilder.AppendFormat("\"{0}\":\"{1}\",", dSet.Tables[strTableName].Columns[j].ColumnName, dSet.Tables[strTableName].Rows[i][j].ToString());
                    }
                    sBuilder.Remove(sBuilder.ToString().LastIndexOf(','), 1);
                    sBuilder.Append("},");
                }
                sBuilder.Remove(sBuilder.ToString().LastIndexOf(','), 1);

                sBuilder.Append("]");
                sBuilder.Append("}");
                //sBuilder.Append(" };");
                return sBuilder.ToString();
            }
            catch (Exception es){
                throw new Exception(es.Message);
            }
        }

前台返回的数据:

{"IStore":[{"SOIID":"1 ","UserID":"001 ","StoreID":"47 ","Attention":"10"},{"SOIID":"2 ","UserID":"001 ","StoreID":"77 ","Attention":"8"},{"SOIID":"3 ","UserID":"001 ","StoreID":"81 ","Attention":"8"},{"SOIID":"4 ","UserID":"001 ","StoreID":"42 ","Attention":"7"},{"SOIID":"5 ","UserID":"001 ","StoreID":"81 ","Attention":"6"},{"SOIID":"6 ","UserID":"001 ","StoreID":"114 ","Attention":"6"},{"SOIID":"7 ","UserID":"001 ","StoreID":"106 ","Attention":"8"},{"SOIID":"8 ","UserID":"001 ","StoreID":"116 ","Attention":"6"}]}

前台执行ajax调用的代码


xhr.get({
                        //请求页面
                        url: "WebForm3.aspx",
                        //参数
                        content: { name: sname },
                        //数据格式
                        handleAs: "json",
                        //当执行成功时调用的方法
                        load: function (newContent) {
                            try {
                                
                                var str = newContent;
                                console.log(str);
                                console.log("ddddddddddddddddddd");
                                console.log(dojo.toJson(str));
                            }
                            catch (err)
                            { console.log(err); }
                            //dom.byId("txtSuggestion").value = people.programmers[0].lastName;
                            dom.byId("txtSuggestion").value = newContent.IStore[2].StoreID;
                        },
                        //失败时调用的方法
                        error: function (err) {
                            //alert("error");
                            alert(err);
                        }
                    });

目录
相关文章
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
51 1
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1月前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
2月前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
47 2
|
2月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
178 0
在Java中处理JSON数据:Jackson与Gson库比较
|
1月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
2月前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
2月前
|
JSON 前端开发 Java
【Spring】“请求“ 之传递 JSON 数据
【Spring】“请求“ 之传递 JSON 数据
98 2
|
3月前
|
存储 JSON Go
在Gin框架中优雅地处理HTTP请求体中的JSON数据
在Gin框架中优雅地处理HTTP请求体中的JSON数据