asp生成json
成考报名 发布时间:10-02 阅读:
ASP 发送及处理JSON格式请求
asp生成json 第一篇
ASP 发送及处理JSON格式请求
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于解析和生成。JSON基于JavaScript的一个子集,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等),这些特性使JSON成为理想的数据交换语言。
可以使用eval()方法调用JavaScript编译器把JSON文本转变成对象。因为JSON是JavaScript的一个确切子集,编译器可以正确地解析JSON文本,然后生成一个对象结构。例如,下面的语句即使用eval()方法将JSON文本friend转换成对象j将JSON文本转换为对象后,便可以使用索引来获取相应的值。例如,下面的
Asp net 将数据库里的记录转换成json
asp生成json 第二篇
Asp.net 将数据库里的记录转换成json
在前面我已经写了asp的版本,最近一个项目中正好需要用json来填充下拉框,所以写了一个asp.net的将数据库里的记录转换成json,代码如下:
以下是引用片段:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace OTC.Utility
...{
public sealed class JSONHelper
...{
/**////
/// 获取JSON字符串
///
/// 值
/// 数据表名
///
public static string GetJSON(SqlDataReader drValue, string strTableName)
...{
StringBuilder sb = new StringBuilder();
sb.AppendLine("{");
sb.AppendLine(" " + strTableName + ":{");
sb.AppendLine(" records:[");
try【asp生成json】
...{
while (drValue.Read())
...{
sb.Append(" {");
for (int i = 0; i < drValue.FieldCount; i++)
...{
sb.AppendFormat(""{0}":"{1}",", drValue.GetName(i), drValue.GetValue(i));
}
sb.Remove(sb.ToString().LastIndexOf(’,’), 1);
sb.AppendLine("},");
}
sb.Remove(sb.ToString().LastIndexOf(’,’), 1);
}
catch(Exception ex)
...{
throw new Exception(ex.Message);
}
finally
...{
drValue.Close();
}
sb.AppendLine(" ]");
sb.AppendLine(" }");
sb.AppendLine(" };");
return sb.ToString();
}
}
} 接下来你只需要传一个SqlDataReader对象就可以了。
asp.netJson序列化
asp生成json 第三篇
ASP.net中用JSON序列化对象
过去我们使用JSON.net序列化一个对象,在asp.net3.5中已经集成了序列化对象为json的方法。
我们分别针对System.Runtime.Serialization.Json和System.Web.Script.Serialization两个命名空间下的不同方法进行序列化和反序列化。
第一种方法:
System.Runtime.Serialization.Json【asp生成json】
(在vs2008添加引用System.Runtime.Serialization 如果在非WEB项目下还需要引用System.ServiceModel.Web)
JosnHelper.CS 代码如下:
1 public class JsonHelper
2 {
3 /// <summary>
4 /// 生成Json格式
5 /// </summary>
6 /// <typeparam name="T"></typeparam>
7 /// <param name="obj"></param>
8 /// <returns></returns>
9 public static string GetJson<T>(T obj)
10 {
11 DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
12 using (MemoryStream stream = new MemoryStream()) 13 {
14 json.WriteObject(stream, obj);
15 string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
16 }
17 }
18 /// <summary>
19 ///
获取Json
的
Model
20 /// </summary>
21 /// <typeparam name="T"></typeparam>
22 /// <param name="szJson"></param>
23 /// <returns></returns>
24 public static T ParseFromJson<T>(string szJson) 25 {
26 T obj = Activator.CreateInstance<T>();
27 using (MemoryStream ms = new MemoryStream(Encoding.UTF
8.GetBytes(szJson)))
28 {
29 DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());【asp生成json】
30 return (T)serializer.ReadObject(ms);
31 }
32 }
33 }
下面为具体用法
声明一个需要输出JSON属性的类
1 public class topMenu
2 {
3 public string id { get; set; }
4 public string title { get; set; }
5
public
string defaulturl {
get;
set; }
6 }
本例使它循环三次 利用上面GetJson方法序列化
1 topMenu t_menu = new topMenu()
2 {
3 id = "1",
4 title = "全局",
5 defaulturl = "123456"
6 };
7
8 List<topMenu> l_topmenu = new List<topMenu>();
9 for (int i = 0; i < 3; i++)
10 {
11 l_topmenu.Add(t_menu);
12 }
13 Response.Write(JsonHelper.GetJson<List<topMenu>>(l_topmenu));
输出结果为:
[{"defaulturl":"123456","id":"1","title":"
全局"},
{"defaulturl":"123456","id":"1","title":"全局"},
{"defaulturl":"123456","id":"1","title":"全局"}]
下面利用上面ParseFromJson方法读取Json
1 string szJson = @"{""id"":""1"",""title"":""全局"",""defaulturl"":""123456""} "; 2 topMenu t_menu2 = JsonHelper.ParseFromJson<topMenu>(szJson); 3 Response.Write(t_menu2.title);
输出结果为:全局
第二种方法
System.Web.Script.Serialization (引用System.Web.Extensions.dll)
还是用到上面方法中JSON属性的类
下面和上面方法中一样。循环三次就。序列化方式不一样
1 topMenu t_menu = new topMenu()
2 {
3 id = "1",
4 title = "全局",
5 defaulturl = "123456"
6 };
7
8 List<topMenu> l_topmenu = new List<topMenu>(); 9
10 for (int i = 0; i < 3; i++)
11 {
12 l_topmenu.Add(t_menu);
13 }
下面用这种方式输出: