ASP.NET自带对象JSON字符串与实体类的转换
发布时间:2021-01-11 11:57:22 所属栏目:asp.Net 来源:互联网
导读:关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解!切入正题!
|
关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解! 切入正题! 还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization.Json;
using System.ServiceModel.Web;///记得引用这个命名空间
using System.IO;
using System.Text;
/// <summary>
/// Summary description for JsonHelper
/// </summary>
public class JsonHelper
{
public JsonHelper()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// 把对象序列化 JSON 字符串
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="obj">对象实体</param>
/// <returns>JSON字符串</returns>
public static string GetJson<T>(T obj)
{
//记住 添加引用 System.ServiceModel.Web
/**
* 如果不添加上面的引用,System.Runtime.Serialization.Json; Json是出不来的哦
* */
DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream())
{
json.WriteObject(ms,obj);
string szJson = Encoding.UTF8.GetString(ms.ToArray());
return szJson;
}
}
/// <summary>
/// 把JSON字符串还原为对象
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="szJson">JSON字符串</param>
/// <returns>对象实体</returns>
public static T ParseFormJson<T>(string szJson)
{
T obj = Activator.CreateInstance<T>();
using (MemoryStream ms = new MemoryStream (Encoding.UTF8.GetBytes(szJson)))
{
DataContractJsonSerializer dcj = new DataContractJsonSerializer(typeof(T));
return (T)dcj.ReadObject(ms);
}
}
}
测试实体类:
public class TestData
{
public TestData()
{
}
public int Id { get; set; }
public string Name { get; set; }
public string Sex { get; set; }
}
测试页面:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender,EventArgs e)
{
string jsonStr = string.Empty;
List<TestData> tds = new List<TestData>();
//测试数据
for (int i = 1; i < 4; i++)
{
tds.Add(new TestData() { Id = i,Name = "jinho" + i,Sex = "male" });
} //把一个list转换为json字符串
jsonStr = JsonHelper.GetJson<List<TestData>>(tds);
Response.Write(jsonStr);
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"json","getJson(" + jsonStr + ");",true);
}
</script>
<script type="text/javascript">
function getJson(jsonStr) { //使用eval函数
var json = eval(jsonStr); //因为上面为list集合
for (var i = 0; i < json.length; i++) {
alert(json[i].Id + "Name:" + json[i].Name);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
关于json字符串转换为实体请各位自己测试吧!只要有上面那个JsonHelper 类,一切都好办! 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示
- asp.net-ajax – Ajax脚本管理器和母版页
- asp-classic – 经典的asp / asp.net网站 – global.asa无效
- 如何合理地构建我的ASP.NET MVC 2项目与区域
- 在ASP.NET MVC中动态地从数据库生成CSS文件
- ASP.Net Web应用程序安全性不适用于IIS 7?
- asp.net类序列化生成xml文件实例详解
- asp.net-mvc-3 – 如何将复选框绑定到mvc3中的viewmodel
- asp.net下使用jquery 的ajax+WebService+json 实现无刷新取
- asp.net-mvc – 在ajax请求中返回PDF
推荐文章
站长推荐
- asp.net-mvc – MVC会话过期而不是身份验证
- asp.net 删除项目文件/文件夹IIS重启,Session丢
- asp.net-mvc – 在asp.net mvc中启动一组未选中的
- 在ASP.NET MVC中动态地从数据库生成CSS文件
- asp.net – 手动更新表单认证券:
- 受asp.net MVC启发的更好的WebForms
- asp.net – 是否有可能过滤SignalR中的接收器?
- asp.net-mvc – Nhibernate / MVC:在View中处理
- 认证 – asp.net mvc 3:Page.User.IsInRole(“x
- asp.net-mvc – 什么时候使用ViewData而不是View
热点阅读
