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,男
  • 相关阅读:
    Ansible安装配置
    软件测试流程与测试文档
    软件测试与软件质量
    软件测试模型
    软件测试基础知识
    阮一峰ES6
    微信小程序引用外部js,引用外部样式,引用公共页面模板
    css中class后面跟两个类,这两个类用空格隔开
    动态设置WX滚动条的高度(非常重要)
    Vue入口页
  • 原文地址:https://www.cnblogs.com/sirkevin/p/2083004.html
Copyright © 2011-2022 走看看