dynamic关键字的使用
https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonConvert.htm
在使用DeserializeObject函数进行转换的时候,会自动处理,如果和T匹配,就会转换好。
如果类型不匹配,也不会报错的。
public class Person
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
public class People
{
public string Gender { get; set; }
} /// <summary>
/// 生成json字符串
/// </summary>
[Test]
public void Test14()
{
Person person = new Person
{
Id = "",
FirstName = "Chuck",
LastName = "Lu",
Email = "chuck.lu@qq.com"
};
string str = JsonConvert.SerializeObject(person);
Console.WriteLine(str);
} /// <summary>
/// 测试dynamic关键字的使用
/// </summary>
[Test]
public void Test15()
{
string str = "{\"Id\":\"10232\",\"FirstName\":\"Chuck\",\"LastName\":\"Lu\",\"Email\":\"chuck.lu@qq.com\"}";
var temp = JsonConvert.DeserializeObject<dynamic>(str);
//这里都是硬编码调用的
Console.WriteLine($@"{temp.Id} {temp.Id.GetType()}");
Console.WriteLine($@"{temp.FirstName} {temp.FirstName.GetType()}");
Console.WriteLine($@"{temp.LastName} {temp.LastName.GetType()}");
Console.WriteLine($@"{temp.Email} {temp.Email.GetType()}");
Console.WriteLine($@"{temp.Gender} {temp.Gender?.GetType()}"); //这里的Gender是null
Console.WriteLine(); var person = JsonConvert.DeserializeObject<Person>(str);
Console.WriteLine(person.GetType());
Console.WriteLine($@"{person.Id} {person.Id.GetType()}");
Console.WriteLine($@"{person.FirstName} {person.FirstName.GetType()}");
Console.WriteLine($@"{person.LastName} {person.LastName.GetType()}");
Console.WriteLine($@"{person.Email} {person.Email.GetType()}"); Console.WriteLine();
var people = JsonConvert.DeserializeObject<People>(str);
Console.WriteLine(people.GetType());
}
json字符的转义,http://tool.what21.com/tool/javaStr.html
dynamic关键字的使用的更多相关文章
- C#中Dynamic关键字
dynamic关键字和动态语言运行时(DLR)是.Net 4.0中新增的功能. 什么是"动态"? 编程语言有时可以划分为静态类型化语言和动态类型化语言.C#和Java经常被认为是静 ...
- 浅谈Dynamic 关键字系列之一:dynamic 就是Object(转)
C# 4.0提供了一个dynamic 关键字,那么什么是dynamic,究竟dynamic是如何工作的呢? 从最简单的示例开始: static void Main(string[] args) { d ...
- dynamic关键字
public class TestClass { public dynamic Values { get; set; } } public class Test { static void Func( ...
- C# 动态语言特性,dynamic 关键字研究
1 动态语言简介 支持动态特性的语言现在大行其道,并且有继续增长的趋势.比如 Ruby 和 Python, 还有天王级的巨星 --- JavaScript. 现在一个程序员说自己对 Jav ...
- C#中 dynamic 关键字
所有表达式都能隐式的转换成dynamic,因为所有的表达式最终都能生成从Object派生出的类型. ; int b = a; //隐式转换错误 int b2 = (int)a; ; int b3 ...
- C#4.0中的dynamic关键字和ExpandoObject对象
dynamic最大的特点我想莫过于在它的类型在运行时才确定,这也是它与往静态类型关键字的最大区别.如果你在你的代码操作中用到了dynamic关键字去定义一个变量时,那么这个变量在编译的时候编译器不会对 ...
- Swift dynamic关键字
使用dynamic关键字标记属性,使属性启用Objc的动态转发功能: dynamic只用于类,不能用于结构体和枚举,因为它们没有继承机制,而Objc的动态转发就是根据继承关系来实现转发. 参考资料: ...
- Dart编程实例 - Dynamic 关键字
Dart编程实例 - Dynamic 关键字 void main() { dynamic x = "tom"; print(x); } 本文转自:http://codingdict ...
- C#dynamic关键字(1)
一.object,var,dynamic的区别 static void Main() { //var是C# 3中引入的,其实它仅仅只是一个语法糖. var本身并不是一种类型, 其它两者object和d ...
随机推荐
- SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程
SAS进阶<深入解析SAS>之SAS数据挖掘的一般流程 1. 所谓数据挖掘,是指通过对大量的数据进行选择.探索与建模,来揭示包含在数据中以前不为人所知的模式或规律,从而为商业活动或科学研究 ...
- THREE.js代码备份——webgl - scene animation(通过加载json文件来加载动画和模型)
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - sc ...
- Power Designer逆向操作(从mysql5.0生成数据库的物理模型)
Power Designer逆向操作(从mysql5.0生成数据库的物理模型) 环境:powderdesigner12.5:mysql5.0 步骤: 1. 为指定的数据库配置MySQL的ODBC数据 ...
- VBA中Option的四种用法
1.Option Explicit.当使用Option Explicit时,必须在模块中的所有过程声明每一个变量,否则会出现语法错误并不能被编译.这样做的好处是,它能消除程序中因为错拼变量名而导致程序 ...
- 《C++ Primer 第5版》第1章
1.1 一个简单的C++程序 #include <iostream>int main() { std::cout << "Hello World!" ...
- 为.net mvc core 启用 https
引用nuget包:Microsoft.AspNetCore.Server.Kestrel.Https这是一个服务器测试ssl密钥,密码如代码里面所示 using System; using Syste ...
- 跳转语句(break、continue)
break语句 在switch条件语句和循环语句中都可以使用break语句.当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构. 当它出现在循环语句中,作用是跳出循环语句 ...
- yum插件
参考文章: http://www.linuxfly.org/post/297/ [root@dnstest07.tbc /home/ahao.mah] #rpm -qa |grep yum yum-p ...
- 【模板】Link-Cut Tree
#include<cstdio> #include<algorithm> #define N 500010 #define rg register #define ls (c[ ...
- 一个电商项目的Web服务化改造4:方案和架构,通用接口的定义和实现
最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA. 有点挑战,做完了,会有很大进步. 上一篇,我们明确了我们的"规范和约定". 从 ...