生成json格式

html页面

 <input type="button" value="重新生成JSON" class="button1" id="createjson" />

javascript部分

 <script type="text/javascript">
 $(function () {
             //生成JSON
            $("#createjson").click(function () {
                $.post("NewsCategory.aspx?action=create", function (json) {
                    alert(json.msg);
                 });
            });
     });
</script>

后台代码

  protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Headers["X-Requested-With"] != null && Request.Headers["X-Requested-With"].ToLower() == "XMLHttpRequest".ToLower())
        {
            Response.Clear();
            Response.ContentType = "application/json";
            if (Request["action"] == "create")
            {
                Response.Write(CreateJson());
            }
            Response.End();
        }
    }

   /// <summary>
    /// 生成商家类别Json
    /// </summary>
    /// <returns></returns>
    protected string CreateJson()
    {

        System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
     //初始化(引用空间using System.Text;)        StringBuilder sb = new StringBuilder();
        var list = Express.BLL.NewsCategory.Get();
        foreach (var item in list)
        {
            if (sb.Length > 0)
                sb.Append(",");
            sb.Append(string.Format("{{\"id\":{0},\"name\":\"{1}\",\"pid\":{2},\"itemvalue\":\"{3}\"", item.Id, GetUnicode(item.ItemName), item.ParentId, item.ItemValue));
            sb.Append("}");
        }
     //返回与Web服务器上的指定虚拟路径相对应的物理文件路径        string filePath = Server.MapPath(@"/common/newscategoryJson.js");
     //创建一个新文件,并写入指定字符串,若目标文件已存在,则覆盖该文件        System.IO.File.WriteAllText(filePath, "[" + sb.ToString() + "]", System.Text.Encoding.UTF8);
        return json.Serialize(new { code = 1, msg = "生成完成" });
    }

汉字转为Unicode编码

 /// <summary>
    /// 得到汉字的Unicode编码
    /// </summary>
    protected string GetUnicode(string text)
    {
        string result = "";
        for (int i = 0; i < text.Length; i++)
        {
            if ((int)text[i] > 32 && (int)text[i] < 127)
            {
                result += text[i].ToString();
            }
            else
                result += string.Format("\\u{0:x4}", (int)text[i]);
        }
        return result;
    }

数据库部分

        /// 获取全部
        /// </summary>
        public List<Model.NewsCategory> Get()
        {
            string sql = "select * from NewsCategory  order by case when ParentId=0 then Id*10000 else ParentId*10000+Id end";
            List<Model.NewsCategory> list = new List<Model.NewsCategory>();
            using (SqlDataReader dr = DBUtility.SqlHelper.ExecuteReader(ConnString.connReadonly, CommandType.Text, sql, null))
            {
                while (dr.Read())
                {
                    Model.NewsCategory model = new Model.NewsCategory();
                    object obj;
                    obj = dr["Id"];
                    if (obj != null && obj != DBNull.Value)
                    {
                        model.Id = (int)obj;
                    }
                    obj = dr["SortValue"];
                    if (obj != null && obj != DBNull.Value)
                    {
                        model.SortValue = (int)obj;
                    }
                    obj = dr["ParentId"];
                    if (obj != null && obj != DBNull.Value)
                    {
                        model.ParentId = (int)obj;
                    }
                    model.ItemName = dr["ItemName"].ToString();
                    model.ItemValue=dr["ItemValue"].ToString();
                    list.Add(model);
                }
            }
            return list;
        }

运行结果
common/newscategoryJson.js

[
{"id":31,"name":"\u65b0\u95fb\u4e2d\u5fc3","pid":0,"itemvalue":"|0|"},{"id":51,"name":"\u4f01\u4e1a\u5feb\u8baf","pid":31,"itemvalue":"|0|31|"},{"id":52,"name":"\u4f01\u4e1a\u516c\u544a","pid":31,"itemvalue":"|0|31|"},{"id":53,"name":"\u884c\u4e1a\u52a8\u6001","pid":31,"itemvalue":"|0|31|"},{"id":91,"name":"\u65b0\u95fb\u4e2d\u5fc3","pid":31,"itemvalue":"|0|31|"},{"id":93,"name":"\u4f01\u4e1a\u5feb\u8baf","pid":31,"itemvalue":"|0|31|"},{"id":94,"name":"\u4f01\u4e1a\u516c\u544a","pid":31,"itemvalue":"|0|31|"},{"id":180,"name":"\u6d4b\u8bd5","pid":31,"itemvalue":"|0|31|"},{"id":181,"name":"\u6d4b\u8bd5111","pid":31,"itemvalue":"|0|31|"},

{"id":54,"name":"\u5173\u4e8e\u76df\u53cb\u634c\u634c","pid":0,"itemvalue":"|0|"},{"id":55,"name":"\u4f01\u4e1a\u6982\u51b5","pid":54,"itemvalue":"|0|54|"},{"id":56,"name":"\u4f01\u4e1a\u6587\u5316","pid":54,"itemvalue":"|0|54|"},{"id":57,"name":"\u4f01\u4e1a\u53d1\u5c55","pid":54,"itemvalue":"|0|54|"}......]

涉及的知识点

1、Server.MapPath(string path);

2、System.IO.File.WriteAllText(sting path,string contents,Encoding encoding);

时间: 2024-11-02 21:37:47

生成json格式的相关文章

如何使用fastJson来解析JSON格式数据和生成JSON格式数据

由于项目用到了JSON格式的数据,在网上搜索到了阿里的fastjson比较好用,特此记录fastjson用法,以备以后查询之用. decode: 首先创建一个JSON解析类: public class JsonParser { private int devid; public int getDevid() { return devid; } public void setDevid(int devid) { this.devid = devid; } } 在需要用到解析的地方创建一个对应的对象

Java Servlet生成Json格式数据

Java Servlet生成Json格式数据 分类: Web JAVA2013-09-17 14:38 4805人阅读 评论(1) 收藏 举报 在Servlet中覆写doGet方法,是用JSONStringer 类: [java] view plaincopyprint? protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 

在VS2013下编译json-c库,并简单生成json格式数据

#include "stdafx.h"#include "json-c/json.h" int _tmain(int argc, _TCHAR* argv[]){ // 正常的json格式 json_object *json = json_object_new_object(); json_object_object_add(json, "name", json_object_new_string("laomeng")); j

使用JSONObject类来生成json格式的数据

使用map构建json格式的数据 使用java bean来构建json对象

Datatable 生成json格式

? 1 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 8

app开发历程————服务器端生成JSON格式数据,采用Unicode编码,隐藏中文

今天,问以前的同事,他们写接口按什么编码,怎么看到有\u的一些看不懂的内容,一问,原来是信息隐藏,防止信息泄漏. 然后在网上查了Java如何把中文转换成unicode编码,转自:http://blog.csdn.net/sunmenggmail/article/details/27539023 1 package mobi.chenwei.wing.util; 2 3 public class CharacterSetToolkit { 4 5 /** 6 * @param args 7 */

eclipse 自动生成json格式的toString()方法

文本代码 {"${member.name()}":"${member.value}", "${otherMembers}"} 原文地址:https://www.cnblogs.com/duanwandao/p/9655282.html

小记---------maxwell 一个可以实时读取mysql二进制日志binlog,并生成JSON格式的消息,作为生产者发送给kafka,Redis,文件或其他平台的应用程序

maxwell主要提供了下列功能 支持 SELECT * FROM table 的方式进行全量数据初始化 支持在主库发生failover后,自动回复binlog位置(GTID) 可以对数据进行分区,解决数据倾斜问题,发送到kafka的数据支持database,table,column等级别的数据分区 工作方式是伪装为Slave,接受binlog events, 然后根据schemas信息拼装,可以接受ddl.xid.row等各种event 1.首先配置mysql 启用binlog (因为我们没有

iOS开发之JSON格式数据的生成与解析

本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据?  JSON格式取代了xml给网络传输带来了很大的便利,但是却没有了xml的一目了然,尤其是json数据很长的时候,我们会陷入繁琐复杂的数据节点查找中.这时我们就需要一款在线校验工具 BeJson. 一.JSON是什么? JSON(JavaScript Object Notation) 是一种轻量级的