最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ASP.NET自带对象JSON字符串与实体类的转换

来源:动视网 责编:小采 时间:2020-11-27 22:36:53
文档

ASP.NET自带对象JSON字符串与实体类的转换

ASP.NET自带对象JSON字符串与实体类的转换:关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解! 切入正题! 还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈。 u
推荐度:
导读ASP.NET自带对象JSON字符串与实体类的转换:关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解! 切入正题! 还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈。 u


关于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自带对象JSON字符串与实体类的转换

ASP.NET自带对象JSON字符串与实体类的转换:关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解! 切入正题! 还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈。 u
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top