生成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);

原文地址:https://www.cnblogs.com/haozhenjie819/p/3929875.html