当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-08-25

    本文导语:  还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈。 代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Runtime.Serialization.Json;using System.ServiceModel.Web;///记得引...

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

代码如下:

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 description for JsonHelper
///
public class JsonHelper
{
    public JsonHelper()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    ///
    /// 把对象序列化 JSON 字符串
    ///
    /// 对象类型
    /// 对象实体
    /// JSON字符串
    public static string GetJson(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;
        }
    }
    ///
    /// 把JSON字符串还原为对象
    ///
    /// 对象类型
    /// JSON字符串
    /// 对象实体
    public static T ParseFormJson(string szJson)
    {
        T obj = Activator.CreateInstance();
        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; }
}

测试页面:
代码如下:



    protected void Page_Load(object sender, EventArgs e)
    {
        string jsonStr = string.Empty;
        List tds = new List();
        //测试数据
        for (int i = 1; i < 4; i++)
        {
            tds.Add(new TestData() { Id = i, Name = "jinho" + i, Sex = "male" });
        }        //把一个list转换为json字符串
        jsonStr = JsonHelper.GetJson(tds);
        Response.Write(jsonStr);
        this.Page.ClientScript.RegisterStartupScript(this.GetType(), "json", "getJson(" + jsonStr + ");", true);
    }



    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);
        }
    }



   


   
   



   

   



关于json字符串转换为实体请各位自己测试吧!只要有上面那个JsonHelper 类,一切都好办!

    
 
 

您可能感兴趣的文章:

  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net防止页面重复提交(示例)
  • asp.net数据绑定时动态改变值(示例)
  • asp.net正则表达式提取中文的代码示例
  • asp.net页面防止重复提交示例分享
  • asp.net获取网站目录物理路径示例
  • ASP.NET Dictionary 的基本用法示例介绍
  • Asp.net中的数据绑定Eval和Bind应用示例
  • ASP.NET中上传并读取Excel文件数据示例
  • asp.net禁止重复提交示例代码
  • asp.net页面中时间格式化的示例
  • asp.net datalist绑定数据后可以上移下移实现示例
  • asp.net 发送邮件的简单示例
  • asp.net DataSet转换成josn并输出示例
  • ASP.NET取得所有颜色值示例
  • asp.net使用jQuery获取RadioButtonList成员选中内容和值示例
  • asp.net获取网站绝对路径示例
  • asp.net错误处理Application_Error事件示例
  • asp.net利用存储过程实现模糊查询示例分享
  • asp.net Timer定时器用法示例
  • asp.net在图片上添加水印效果的代码示例
  • asp 正则 过滤重复字符串的代码
  • asp+正则获得字符串中最后一个字母非字母不算
  • asp正则过滤重复字符串的代码
  • JSP中如何删除字符串的前后空格的,asp中是Ltrim和Rtrim,JSP中是什么呢?在线等待
  • asp.net中利用正则表达式判断一个字符串是否为数字的代码
  • asp中的replace可以替换掉掉变量字符串中的字符,在jsp中用什么?请举例.
  • asp.net字符串转换 123456789转换为12-345-6789的3种方法
  • Asp.Net中的字符串和HTML十进制编码转换实现代码
  • asp.net 3.5中在web.config文件创建ACCESS连接字符串的方法
  • asp.net(c#) 使用Rex正则来生成字符串数组的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net实例 定义和使用asp:AccessDataSource
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 实现Asp与Asp.Net共享Session的方法 iis7站长之家
  • asp 是否 可用applet标签?帮忙!!
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • 新人提问:asp+access的程序在linux下怎么改?
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢?
  • asp.net文字水印功能简单代码
  • asp里面可否使用java写的邮件,给30分.
  • asp与Jsp可否在iis中共存的问题
  • 实现Asp与Asp.Net共享Session的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3