asp.net序列化泛型集合

一般的Json+jquery+asp.net 的应用在项目中都是ajax的一部分,包括数据源和数据处理页面。经过在网络上的学习,为了可以方便的生成Json,网上一般的方法是引用了Newtonsoft.Json类来做此事。应用该类可以方便的生成Json数据串。

1.生成Json数据串

方法1,使用JavaScriptConvert.DeserializeObject对实体进行转换

下面这个是JavaScriptConvert.DeserializeObject的方法说明

//把Json字符串反序列化为对象
目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象));

view plaincopy to clipboardprint?
// 获取用户数据
IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);

// 使用方法对泛型实体进行转换
string jsonString = JavaScriptConvert.SerializeObject(userInfoList);

// 输出串
Response.Clear();
Response.ContentEncoding = Encoding.UTF8;
Response.ContentType = "application/json";
Response.Write(jsonString);
Response.Flush();
Response.End();
// 获取用户数据
IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);

// 使用方法对泛型实体进行转换
string jsonString = JavaScriptConvert.SerializeObject(userInfoList);

// 输出串
Response.Clear();
Response.ContentEncoding = Encoding.UTF8;
Response.ContentType = "application/json";
Response.Write(jsonString);
Response.Flush();
Response.End();

方法二,没有实体的情况下,可以适应这种

view plaincopy to clipboardprint?
// 获取用户数据
IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);

// 构成json数据串
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
foreach (MUsersInfo item in userInfoList)
{
writer.WriteStartArray();
writer.WriteStartObject();
writer.WritePropertyName("UserId"); // 属性名称
writer.Writue(item.Ts_Users_ID); // 属性值
writer.WritePropertyName("RealName");
writer.Writue(item.Ts_User_RealName);
writer.WriteEndObject();
writer.WriteEndArray();
}

writer.Flush();

// 生成串
string jsonString = sw.GetStringBuilder().ToString();

// 输出
Response.Clear();
Response.ContentEncoding = Encoding.UTF8;
Response.ContentType = "application/json";
Response.Write(jsonString);
Response.Flush();
Response.End();
// 获取用户数据
IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);

// 构成json数据串
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
foreach (MUsersInfo item in userInfoList)
{
writer.WriteStartArray();
writer.WriteStartObject();
writer.WritePropertyName("UserId"); // 属性名称
writer.Writue(item.Ts_Users_ID); // 属性值
writer.WritePropertyName("RealName");
writer.Writue(item.Ts_User_RealName);
writer.WriteEndObject();
writer.WriteEndArray();
}

writer.Flush();

// 生成串
string jsonString = sw.GetStringBuilder().ToString();

// 输出
Response.Clear();
Response.ContentEncoding = Encoding.UTF8;
Response.ContentType = "application/json";
Response.Write(jsonString);
Response.Flush();
Response.End();

两种方式各有各的好处,第一种方便,第二种灵活。

2.jquery读取json串

view plaincopy to clipboardprint?
$(document).ready(function() {
$("#Button1").click(function() {
$.getJSON("webService/UserList.aspx", function(json) {
alert("total " + json.length.toString() + " records");
for (var i = 0; i < json.length; i++) {
$("<li />").appendTo("div").html(json[i].Ts_User_RealName);
} 
});
});
});
$(document).ready(function() {
$("#Button1").click(function() {
$.getJSON("webService/UserList.aspx", function(json) {
alert("total " + json.length.toString() + " records");
for (var i = 0; i < json.length; i++) {
$("<li />").appendTo("div").html(json[i].Ts_User_RealName);
} 
});
});
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值