华域联盟 .Net ASP.NET JSON字符串与实体类的互转换示例代码

ASP.NET JSON字符串与实体类的互转换示例代码

还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈。

复制代码 代码如下:

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 类,一切都好办!

您可能感兴趣的文章:

  • 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
  • 使用ASP.NET一般处理程序或WebService返回JSON的实现代码
  • asp.net(C#)解析Json的类代码
  • asp.net JSONHelper JSON帮助类
  • Jquery 组合form元素为json格式,asp.net反序列化
  • asp.net+jquery Jsonp使用方法
  • Jquery中getJSON在asp.net中的使用说明
  • jQuery+ajax+asp.net获取Json值的方法
  • 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
  • asp.net使用DataTable构造Json字符串的方法
  • ASP.NET中XML转JSON的方法实例
  • asp.net提取多层嵌套json数据的方法

本文由 华域联盟 原创撰写:华域联盟 » ASP.NET JSON字符串与实体类的互转换示例代码

转载请保留出处和原文链接:https://www.cnhackhy.com/53347.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部