zoukankan      html  css  js  c++  java
  • 生成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();
            }
        }
    View Code
       /// <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;
        }
    View Code

    数据库部分

            /// 获取全部
            /// </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;
            }
    View Code

    运行结果
    common/newscategoryJson.js

    [
    {"id":31,"name":"u65b0u95fbu4e2du5fc3","pid":0,"itemvalue":"|0|"},
    {"id":51,"name":"u4f01u4e1au5febu8baf","pid":31,"itemvalue":"|0|31|"},
    {"id":52,"name":"u4f01u4e1au516cu544a","pid":31,"itemvalue":"|0|31|"},
    {"id":53,"name":"u884cu4e1au52a8u6001","pid":31,"itemvalue":"|0|31|"},
    {"id":91,"name":"u65b0u95fbu4e2du5fc3","pid":31,"itemvalue":"|0|31|"},
    {"id":93,"name":"u4f01u4e1au5febu8baf","pid":31,"itemvalue":"|0|31|"},
    {"id":94,"name":"u4f01u4e1au516cu544a","pid":31,"itemvalue":"|0|31|"},
    {"id":180,"name":"u6d4bu8bd5","pid":31,"itemvalue":"|0|31|"},
    {"id":181,"name":"u6d4bu8bd5111","pid":31,"itemvalue":"|0|31|"},


    {"id":54,"name":"u5173u4e8eu76dfu53cbu634cu634c","pid":0,"itemvalue":"|0|"},
    {"id":55,"name":"u4f01u4e1au6982u51b5","pid":54,"itemvalue":"|0|54|"},
    {"id":56,"name":"u4f01u4e1au6587u5316","pid":54,"itemvalue":"|0|54|"},
    {"id":57,"name":"u4f01u4e1au53d1u5c55","pid":54,"itemvalue":"|0|54|"}
    ......
    ]

     涉及的知识点

    1、Server.MapPath(string path);

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

  • 相关阅读:
    Idea 代码编辑错误不飘红提示
    Java序列化机制和原理
    tomcat 启动报错org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalin
    idea tomcat 怎样出现update classes and resources
    Java List序列化的实现
    Spring管理的bean初始化方法的三种方式,以及@PostConstruct不起作用的原因
    Tomcat 启动或者发布项目时提示Publishing failed:Resource /xxxx does not exist
    spring中的context:include-filter和context:exclude-filter的区别
    oracle字符集修改
    VML、SVG、Canvas简介
  • 原文地址:https://www.cnblogs.com/haozhenjie819/p/3929875.html
Copyright © 2011-2022 走看看