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

    对于Json的序列化和反序列化,如果自己编写源代码来实现的话,很复杂很烦,所以我采用的是使用别人已经写好的引用文件。这类文件网上有很多,我用的是LitJson,当然Newtonsoft也可以,但后者需要自己为数据结构写一个类来承接序列化之前和反序列化后的数据。

    首先从网上下载LitJson库文件,也可以找我要(QQ2422082778)。然后在项目里引用LitJson的dll文件,在litjson-0.7.0in,LitJson如下图:

    然后我们就可以使用它了。为了更好的在编写代码的时候更好的使用它,我们把它用using引入到需要使用的代码文件里:using LitJson;。

    为了更好的演示序列化和反序列化,我自建了一个product类

    1 namespace JSonTest
    2 {
    3     class Product
    4     {
    5         public string name;
    6         public DateTime expiry;
    7         public string[] sizes=new string[3];
    8     }
    9 }

    1.序列化

    1 //设置对象
    2 Product product=new Product();
    3 product.name = "Apple";
    4 product.expiry = new DateTime(2014,12,6,13,12,12);
    5 product.sizes = new string[] { "Small", "Medium", "Large" };
    6 //序列化
    7 JsonData xx= JsonMapper.ToJson(product);
    8 Console.WriteLine(xx.ToString());//转化为字符串
    9 Console.WriteLine(xx.ToJson());//转化为Json类型的字符串

    序列化结果截图

    2.反序列化

    1 //设置对象
    2 Product product=new Product();
    3 product.name = "Apple";
    4 product.expiry = new DateTime(2014,12,6,13,12,12);
    5 product.sizes = new string[] { "Small", "Medium", "Large" };
    6 //反序列化
    7 JsonData jd =  JsonMapper.ToObject(output);
    8 Console.WriteLine(jd["name"].ToString());//根据属性名获取"name"属性的值

    反序列化结果截图

    很简单的对吧!只要一两句代码就可以了,这就是Json,Json就是这么简单。不过如果你要更深入学习Json的话,就需要花费点心思了。

  • 相关阅读:
    redis缓存穿透
    rocketmq配置文件两主两从
    jvm参数模板
    (转)volatile如何保证可见性
    Spring事务传播性与隔离级别
    Redis windows 远程连接配置修改
    Redis安装与配置( Windows10 或Windows server)
    C#中的虚函数及继承关系
    C#高级功能(三)Action、Func,Tuple
    WAMP配置httpd.conf允许外部访问
  • 原文地址:https://www.cnblogs.com/Failbs/p/4150482.html
Copyright © 2011-2022 走看看