zoukankan      html  css  js  c++  java
  • Json的序列化和反序列化

    1、引用命名空间:

    using System.Runtime.Serialization;

    2、json的序列化和反序列化的方法:

    publicclass JsonHelper
    {
    ///<summary>
    /// 序列化
    ///</summary>
    ///<typeparam name="T"></typeparam>
    ///<param name="t"></param>
    ///<returns></returns>
    publicstaticstring JsonSerializer<T>(T t)
    {
    string jsonString =string.Empty;
    DataContractJsonSerializer ser =new DataContractJsonSerializer(typeof(T));
    MemoryStream ms =new MemoryStream();
    ser.WriteObject(ms, t);
    jsonString = Encoding.UTF8.GetString(ms.ToArray());
    ms.Close();
    return jsonString;
    }
    ///<summary>
    /// 反序列化
    ///</summary>
    ///<typeparam name="T"></typeparam>
    ///<param name="jsonString"></param>
    ///<returns></returns>
    publicstatic T JsonDeserialize<T>(string jsonString)
    {
    T obj =default(T);
    DataContractJsonSerializer ser=new DataContractJsonSerializer(typeof(T));
    MemoryStream ms =new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
    obj = (T)ser.ReadObject(ms); 
    return obj;
    }
    }

    3、现在先准备一个Person类:

    class Person
    {
    [DataMemberAttribute]
    publicstring Name { get; set; }
    [DataMemberAttribute]
    publicint Age { get; set; }
    [DataMemberAttribute]
    publicstring Gender { get; set; }
    }

    4、现在就用JsonHelper方法把Person类的对象序列化成Json格式。

    Person p =new Person { Name ="张三", Age =12, Gender ="" };
    string str = JsonHelper.JsonSerializer<Person>(p);
    Console.WriteLine(str);

    5、结果:

    {"Age":12,"Gender":"","Name":"张三"}

    6、再把Json格式反序列化为Person类型:

    p = JsonHelper.JsonDeserialize<Person>(str);
    Console.WriteLine("{0},{1},{2}",p.Name,p.Age,p.Gender);

    7、结果:

    张三,12,男
    

      

    作者:孜孜不倦的程序员
    出处:http://sirkevin.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。  
  • 相关阅读:
    eclipse中包的位置
    404代码错误解决
    servlet-web.xml配置
    java web.xml配置servlet
    1031整理
    1030整理
    rownum
    存储过程和自定义函数的区别
    课堂整理
    练习
  • 原文地址:https://www.cnblogs.com/caixiaofeng/p/3494746.html
Copyright © 2011-2022 走看看