zoukankan      html  css  js  c++  java
  • JSON 序列化和反序列化——JavaScriptSerializer实现

    通过JavaScriptSerializer来实现。它的名字空间为:System.Web.Script.Serialization

    如果要使用它,还须添加

    System.Web.Extensions库文件引用 

    参考实体类:Customer

    public class Customer
    {
       public 
    int Unid { get; set; }
       public string CustomerName { get; set; }
    }

    JavaScriptSerializer描述:为启用 AFAX 的应用程序提供序列化和反序列化功能。

    (一) 序列化

    方法:public string Serialize(Object obj),用于将对象转换为 JSON 字符串

    public string ScriptSerialize(Customer customer)
    {
        JavaScriptSerializer js 
    = new JavaScriptSerializer();

        
    return js.Serialize(customer);
    }

    测试

    Customer cc = new Customer { Unid = 1, CustomerName = "John" };
    string strJson = ScriptSerialize(cc);

    Console.WriteLine(strJson);

    (二)反序列化

    public Customer ScriptDeserialize(string strJson)
    {
        JavaScriptSerializer js 
    = new JavaScriptSerializer();
        
    return js.Deserialize<Customer>(strJson);

    }

    通过Deserialize<T>方法来实现。

    测试:

    Customer c1 = ScriptDeserialize(strJson);
    Console.WriteLine(c1.Unid 
    + " " + c1.CustomerName);

    (三)方法泛型

    public string ScriptSerialize<T>(T t)
    {
        JavaScriptSerializer js 
    = new JavaScriptSerializer();
        
    return js.Serialize(t);
    }

    public T ScriptDeserialize<T>(string strJson)
    {
        JavaScriptSerializer js 
    = new JavaScriptSerializer();
        
    return js.Deserialize<T>(strJson);
    }

    测试:

    Customer cc = new Customer { Unid = 1, CustomerName = "John" };
    string strJson = ScriptSerialize<Customer>(cc);
    Console.WriteLine(strJson); 

    Customer c1 
    = ScriptDeserialize<Customer>(strJson);
    Console.WriteLine(c1.Unid 
    + " " + c1.CustomerName);

     
  • 相关阅读:
    Fedora 18 Beta 天高地厚
    Action script 天高地厚
    DLL动态连接库 天高地厚
    VC下Debug和Release区别
    如何解决"应用程序无法启动,因为应用程序的并行配置不正确"问题
    GetWindowLong (hwnd, 0)
    windows文件关联、打开方式列表之修改注册表攻略
    小游戏开发流程
    常用CHM帮助文档集锦下载
    关于jsp页面传递中文参数乱码的解决
  • 原文地址:https://www.cnblogs.com/jams742003/p/1631485.html
Copyright © 2011-2022 走看看