Json的序列化与反序列化

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

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

Json的序列化与反序列化_第1张图片

然后我们就可以使用它了。为了更好的在编写代码的时候更好的使用它,我们把它用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类型的字符串

序列化结果截图

Json的序列化与反序列化_第2张图片

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的序列化与反序列化_第3张图片

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

 

你可能感兴趣的:(json)