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关键字的使用的更多相关文章

  1. C#中Dynamic关键字

    dynamic关键字和动态语言运行时(DLR)是.Net 4.0中新增的功能. 什么是"动态"? 编程语言有时可以划分为静态类型化语言和动态类型化语言.C#和Java经常被认为是静 ...

  2. 浅谈Dynamic 关键字系列之一:dynamic 就是Object(转)

    C# 4.0提供了一个dynamic 关键字,那么什么是dynamic,究竟dynamic是如何工作的呢? 从最简单的示例开始: static void Main(string[] args) { d ...

  3. dynamic关键字

    public class TestClass { public dynamic Values { get; set; } } public class Test { static void Func( ...

  4. C# 动态语言特性,dynamic 关键字研究

    1       动态语言简介 支持动态特性的语言现在大行其道,并且有继续增长的趋势.比如 Ruby 和 Python, 还有天王级的巨星 --- JavaScript. 现在一个程序员说自己对 Jav ...

  5. C#中 dynamic 关键字

       所有表达式都能隐式的转换成dynamic,因为所有的表达式最终都能生成从Object派生出的类型. ; int b = a; //隐式转换错误 int b2 = (int)a; ; int b3 ...

  6. C#4.0中的dynamic关键字和ExpandoObject对象

    dynamic最大的特点我想莫过于在它的类型在运行时才确定,这也是它与往静态类型关键字的最大区别.如果你在你的代码操作中用到了dynamic关键字去定义一个变量时,那么这个变量在编译的时候编译器不会对 ...

  7. Swift dynamic关键字

    使用dynamic关键字标记属性,使属性启用Objc的动态转发功能: dynamic只用于类,不能用于结构体和枚举,因为它们没有继承机制,而Objc的动态转发就是根据继承关系来实现转发. 参考资料: ...

  8. Dart编程实例 - Dynamic 关键字

    Dart编程实例 - Dynamic 关键字 void main() { dynamic x = "tom"; print(x); } 本文转自:http://codingdict ...

  9. C#dynamic关键字(1)

    一.object,var,dynamic的区别 static void Main() { //var是C# 3中引入的,其实它仅仅只是一个语法糖. var本身并不是一种类型, 其它两者object和d ...

随机推荐

  1. xampp中localhost与DreamWaver站点设置问题

    作为一个初学者,在DreamWaver中配置web服务器用于本地测试,中间碰到了好多问题,百度答案模糊不清,自己摸索出来,把自己碰到的,易错的地方做个总结. step1 : 安装xampp(安装位置记 ...

  2. Puppeteer——自动化脚本设计

    我被分配了一个繁琐的任务,就是要给100个相同的站点做同样的配置.曾经就有做过相同的事,那时还不会写脚本,全靠手动配置.机械的配置了两天的时间,身体感觉被掏空.所以这次我决定还是写一个脚本自动的进行配 ...

  3. android中TextView内容竖向显示

    项目中遇到需要textview内容竖着排的需求,如图所示: 网上那些“教程”并不能达到需要的效果,发现有一个属性可以支持这种效果,android:ems=“*”,这是属性表示一行只显示*个字符. 具体 ...

  4. Object未定义

    js加载时会在jquery中报Object未定义的错误? 原因: 页面和iframe页面中都引入了jquery 或者 是页面中包含iframe,并且在iframe没有完成加载前操作了iframe中的j ...

  5. WCF开发的流程-服务端和客户端之间的通讯(内含demo讲解)

    讲解技术之前,恳请博友让我说几句废话.今天是我第一在博客园发布属于自己原创的博文(如有雷同,那是绝对不可能的事,嘿嘿).之前一直是拜读各位博友的大作,受益匪浅的我在这对博友们说声谢谢,谢谢你们的共享! ...

  6. 显示log里的ansi codecs颜色字符

    方法: vim AnsiEsc插件 http://www.vim.org/scripts/script.php?script_id=302 less -r cat和tail命令都可以正常显示,而且ta ...

  7. 在对话框添加bitmap

    CBitmap bitmap; //加载指定位图资源 Bmp图片ID bitmap.LoadBitmap(IDB_BITMAP1); //获取对话框上的句柄 图片控件ID CStatic *p = ( ...

  8. csrf漏洞利用

    low csrf(cross-site-request forgery),跨站请求伪造. 测试网站 --http://localhost/vulnerability/csrf 修改密码,点击chang ...

  9. PAT_A1018#Public Bike Management

    Source: PAT A1018 Public Bike Management (30 分) Description: There is a public bike service in Hangz ...

  10. (JS,JAVA,MySql)去除小数后多余的0

    分别通过JS,JAVA和MySql实现去除小数后多余的0 1. JS方法 /** *去除小数点后多余的0 */ function cutZero(old) { //拷贝一份 返回去掉零的新串 old ...