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 > )
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 = , msg = "生成完成" });
}

汉字转为Unicode编码

 /// <summary>
/// 得到汉字的Unicode编码
/// </summary>
protected string GetUnicode(string text)
{
string result = "";
for (int i = ; i < text.Length; i++)
{
if ((int)text[i] > && (int)text[i] < )
{
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);

生成json格式的更多相关文章

  1. Java Servlet生成JSON格式数据并用jQuery显示

    1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException;import java.io.PrintWriter;import java.uti ...

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

    JSONObject类不支持javabean转json 生成json格式数据的方式有: 1.使用JSONObject原生的来生成 2.使用map构建json格式的数据 3.使用javabean来构建j ...

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

    由于项目用到了JSON格式的数据,在网上搜索到了阿里的fastjson比较好用,特此记录fastjson用法,以备以后查询之用. decode: 首先创建一个JSON解析类: public class ...

  4. python 生成json格式文件,并存储到手机上

    上代码 #!/usr/bin/env python # -*- encoding: utf-8 -*- import json import os import random "" ...

  5. php 生成json格式的数据

    放到引入的公共函数里边 if (!function_exists('format_json')) { /** * 格式化API输出的json * @param $return_code string ...

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

    今天,问以前的同事,他们写接口按什么编码,怎么看到有\u的一些看不懂的内容,一问,原来是信息隐藏,防止信息泄漏. 然后在网上查了Java如何把中文转换成unicode编码,转自:http://blog ...

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

    文本代码 {"${member.name()}":"${member.value}", "${otherMembers}"}

  8. Datatable 生成json格式

    public string GetJsonFromDataTable(DataTable dt, int total, bool ShowFooter, string fields, string i ...

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

    maxwell主要提供了下列功能     支持 SELECT * FROM table 的方式进行全量数据初始化     支持在主库发生failover后,自动回复binlog位置(GTID)     ...

随机推荐

  1. 致远OA利用POC

    批量检测url 在脚本同目录下建立url.txt 放入待检测的URL 运行脚本 # Wednesday, 26 June 2019 # Author:nianhua # Blog:https://gi ...

  2. 【linux杂谈】centos6和centos7中固定IP的方法

    众所周知,一大部分集合部署的应用服务器内网相互通信都是采用固定IP.在阿里云.腾讯云上申请的云服务器也是固定IP,这就意味着在云平台内部策略划拨肯定是也固定了IP(即便不是采取直接在系统内固定的方式) ...

  3. SpringMVC必备知识点汇总

    1.参数接收 1.1 数组 1.2 文件上传 1.2.1 单个文件上传 1.2.2 多个文件上传 1.2.3 文件上传时,携带其他数据 2.参数校验 参数校验:https://www.cnblogs. ...

  4. 树莓派3 安装kali注意事项(无需显示器、键鼠连接树莓派)2017/9/18更新

     kali系统树莓派专用版下载地址https://www.offensive-security.com/kali-linux-arm-images/ 官方下载页面https://www.kali.or ...

  5. cm_api

    cm API:https://github.com/cloudera/cm_api/tree/master/python/examples/auto-deploy#看集群有几个clustercurl ...

  6. ucloud相关

    ucloud申请证书 https://docs.ucloud.cn/domain/ussl/operate/buy 云主机: https://docs.ucloud.cn/compute/uhost/ ...

  7. 西安邀请赛-D(带权并查集+背包)

    题目链接:https://nanti.jisuanke.com/t/39271 题意:给定n个物品,m组限制,每个物品有个伤害值,现在让两个人取完所有物品,要使得两个人取得物品伤害值之和最接近,输出伤 ...

  8. 【Linux 网络编程】常用TCP/IP网络编程函数

    (1)函数socket /**************************************************************** ** 功能:创建一个套接字用于通信 ** 参 ...

  9. win32 API 笔记1

    //==================HOOK钩子========================= 可以用来HOOK掉系统对某些函数的的调用 //==================终止系统进程= ...

  10. idea - maven子工程找不到父工程pom

    1.应该先构建父项目,再构建子项目.因为子项目依赖于父项目.即父项目先install到本地