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,男
  • 相关阅读:
    Java解析XML(一)、SAX
    Java注解
    NTKO OFFICE文档控件为何不能自动装载?
    Java解析XML(二)、DOM
    JAVA反射机制
    如何手工卸载和安装NTKO OFFICE文档控件
    使用内省的方式操作JavaBean
    JDK自带的native2ascii转码工具使用详解
    HTTP协议详解
    跳过编译器,获取泛型参数的实际类型
  • 原文地址:https://www.cnblogs.com/sirkevin/p/2083004.html
Copyright © 2011-2022 走看看