Json.net实现方便的Json转C#(dynamic动态类型)对象
来源:互联网 发布:林俊杰 唱功 知乎 编辑:程序博客网 时间:2024/04/29 13:45
以前需要将一段json字符串转换为C#对象时,一般都是定义一个与之对应的实体类来接收。这样做有一个很大的缺点,就是当字符串特别长,属性特别多,又有嵌套时,手敲这个实体类就非常痛苦。
比如之前做的一个接收百度七天天气预报的API,层层嵌套,很痛苦。
C# 4.0 之后有了动态类型dynamic。用这个东西配合Json.net可以实现不用定义实体类的json转dynamic类型对象。
以上只是借用了一个实体类来获得一个简单的JSON对象。
实际上,可以完全没有这个Person类
VS 可以回编译报错:找不到编译动态表达式所需的一个或多个类型。是否缺少引用?
比如之前做的一个接收百度七天天气预报的API,层层嵌套,很痛苦。
C# 4.0 之后有了动态类型dynamic。用这个东西配合Json.net可以实现不用定义实体类的json转dynamic类型对象。
以下示例需要先引用Newtonsoft.Json.dll
public class Person { public int Id { get; set; } public string Name { get; set; }} class Program{ static void Main(string[] args) { Person p = new Person(); p.Id = 1; p.Name = "刘备"; //C#对象转Json string json = JsonConvert.SerializeObject(p); Console.WriteLine(json); //{"Id":1,"Name":"刘备"} //此处模拟在不建实体类的情况下,反转将json返回dynamic对象 var DynamicObject = JsonConvert.DeserializeObject<dynamic>(json); Console.WriteLine(DynamicObject.Name); //刘备 Console.ReadKey(); }}
以上只是借用了一个实体类来获得一个简单的JSON对象。
实际上,可以完全没有这个Person类
static void Main(string[] args){ string json = "{\"Id\":1,\"Name\":\"刘备\",\"Age\":\"22\"}"; //此处模拟在不建实体类的情况下,反转将json返回回dynamic对象 var DynamicObject = JsonConvert.DeserializeObject<dynamic>(json); Console.WriteLine(DynamicObject.Name); //刘备 Console.ReadKey();}如果未引用Microsoft.CSharp.dll,关于动态类型,VS可能会报错。
VS 可以回编译报错:找不到编译动态表达式所需的一个或多个类型。是否缺少引用?
阅读全文
1 0
- Json.net实现方便的Json转C#(dynamic动态类型)对象
- Json.net实现方便的Json转C#(dynamic动态类型)对象
- net json 转换dynamic类型
- 用.net dynamic实现对JSON文件的读写操作
- 对象类型转json类型
- .net中反序列化json对象方法(使用Dynamic)
- JSON嵌套的对象类型
- .net 4中使用 dynamic,将json字符串转成对象的 万能方法。
- .net 4中使用 dynamic,将json字符串转成对象的 万能方法。
- .NET 数据类型之动态类型(Dynamic)
- 【C#】【JSON】JSON转C#的写法(含嵌套对象)
- Json 转 dynamic
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- json-lib 实现Java对象与json的互转
- .net中对象转json
- Json实现页面多个对象的保存 java /.net
- ASP.NET Ajax, JQuery & JSON Date Serialization,.net对象系列化为JSON的时候,DateTime类型的转换问题
- 计算字符个数
- ssh-server服务在修改了端口的情况下,怎么git clone 代码
- Java容器HashMap遍历方法和源代码解析
- 实验吧 简单的sql注入
- Java8 实战学习 方法引用
- Json.net实现方便的Json转C#(dynamic动态类型)对象
- [shell]shell位置变量
- 深入理解Java:注解(Annotation)自定义注解入门
- Java基础编程1—随机生成字母数字组合
- php操作mysql
- 在java后台判断两个文件是否是同一文件
- 分布式架构学习之:FastDFS分布式文件系统的Linux安装与使用(单节点)
- FineUI秘密花园(八) — 下拉列表控件
- 树的后序遍历