JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。
在.NET环境下面,我们使用Json.net来实现JSON数据的序列化和反序列化。
首先下载JSON .NET插件和代码。
序列化函数:JsonConvert.SerializeObject(object value),它有个重载方法JsonConvert.SerializeObject(object value, params JsonConverter[] converters)。
反序列化函数:JsonConvert.DeserializeObject(string value, Type type),它有个重载方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)
具体demo如下:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
//[Serializable]
public class Person
{
public Person()
{
}
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
public DateTime Birthday { get; set; }
}
namespace JsonSharp
{
class Program
{
static void Main(string[] args)
{
int i = 1;
Person person = new Person();
person.Name = "何时富";
person.Age = 20 + i;
person.Birthday = DateTime.Now.AddDays(i);
person.Sex = i % 2 == 0 ? "女" : "男";
// Serializing
string strSerializeJSON = JsonConvert.SerializeObject(person);
Console.WriteLine(strSerializeJSON);
// Deserializing
Person user = (Person)JsonConvert.DeserializeObject(strSerializeJSON, typeof(Person));
Console.WriteLine(user.Sex);
}
}
}