C#中Newtonsoft.Json.dll 的使用
1.类库说明
Newtonsoft.Json.dll是.NET 下开源的json格式序列号和反序列化的类库,利用此类库,可以方便地操作json数据,其中在反序列化时,可以直接将格式化的json数据处理成预定义的实体类,也可以生成对应的匿名类
2.环境配置
1通过NuGet程序包直接配置
在对应项目的引用选项上右键,在弹出菜单中选择”管理NuGet程序包”,在搜索框中搜索json,找到Newtonsoft.Json,等待安装完毕
3.直接引用dll
直接在项目中引用Newtonsoft.Json.dll即可
4.json序列化
1).预定义实体类
/// <summary> /// 用于测试的预定义实体类 /// </summary> class JsonTest { /// <summary> /// 初始化 /// </summary> public void Init() { JsonTest test = new JsonTest(); test.Id = "2017"; test.Name = "测试数据"; test.Data = new List<string>() { "1", "2", "3", "4", "5" }; } List<String> _Data = new List<string>(); public List<String> Data { get { return _Data; } set { _Data = value; } } String _Name = String.Empty; public String Name { get { return _Name; } set { _Name = value; } } String _Id = String.Empty; public String Id { get { return _Id; } set { _Id = value; } } }
2).序列化自定义实体类的对象
static void Main(string[] args) { SerializeTest(); Console.ReadLine(); } public static void SerializeTest() { JsonTest test = new JsonTest(); test.Init(); String json = JsonConvert.SerializeObject(test,Formatting.Indented); Console.WriteLine(json); }
例子中使用了JsonConvert.SerializeObject的一个重载方法 Formatting是一个枚举类型,表示是否将json数据格式化,运行效果如下
5.反序列化
1).反序列化为预定义实体类
static void Main(string[] args) { DeSerializeTest(); Console.ReadLine(); } public static void DeSerializeTest() { String jsonstr = "{\"Id\":\"2017\",\"Name\":\"测试数据\",\"Data\":[\"1\",\"2\",\"3\",\"4\",\"5\"]}"; var test = JsonConvert.DeserializeObject<JsonTest>(jsonstr); String str = "Id:{0}\nName:{1}\nData:{2}"; Console.WriteLine(str, test.Id, test.Name, String.Join(",", test.Data)); }
运行结果
该文章转载于:CSDN-Cubeeeeee