一、说明

1.Newtonsoft.Json 中的Linq To Json中提供了方便的json数据查询、修改等操作。

例如:JObject,JArray

2.在JObject.FromObject()或JArray.FromObject()中也提供了对dynamic类型的支持。

二、dynamic转json字符串处理

  1.  
    using Newtonsoft.Json;
  2.  
    using Newtonsoft.Json.Linq;

1.使用JObject对象

  1.  
    dynamic obj = new JObject();
  2.  
    obj.name = "张三丰";
  3.  
    obj.age = 10;
  4.  
    obj.birthday = DateTime.Now;
  5.  
     
  6.  
    Console.WriteLine(obj.ToString());

输出结果:

  1.  
    {
  2.  
    "name": "张三丰",
  3.  
    "age": 10,
  4.  
    "birthday": "2017-07-29T16:39:47.4549601+08:00"
  5.  
    }

2.使用JObject.FromObject()

  1.  
    dynamic obj = new System.Dynamic.ExpandoObject();
  2.  
    obj.name = "张三丰";
  3.  
    obj.age = 10;
  4.  
    obj.birthday = DateTime.Now;
  5.  
     
  6.  
    string result = JObject.FromObject(obj).ToString();
  7.  
    Console.WriteLine(result);

输出结果:同上

三、将json字符串发序列化为dynamic类型

  1.  
    string json = @"
  2.  
    {
  3.  
    'Title': 'Json.NET is awesome!',
  4.  
    'Author': {
  5.  
    'Name': 'James Newton-King',
  6.  
    'Twitter': '@JamesNK',
  7.  
    'Picture': '/jamesnk.png'
  8.  
    },
  9.  
    'Date': '2013-01-23T19:30:00',
  10.  
    'BodyHtml': '<h3>Title!</h3>\r\n<p>Content!</p>'
  11.  
    }
  12.  
    ";
  13.  
    dynamic blogPost = JObject.Parse(json);
  14.  
    string title = blogPost.Title;
  15.  
    Console.WriteLine(title); //输出:Json.NET is awesome!
  16.  
    Console.WriteLine(blogPost.Date); //输出:2013/1/ 23 19:30:00

官方示例:

Querying JSON with dynamicCreate
JSON with dynamic

更多:

C# Newtonsoft.Json JsonSerializerSettings配置序列化操作

C#Json序列化、反序列化之Dictionary 字典类型

C# Newtonsoft.Json之LINQ To Json实例(二)

C# dynamic类型序列化和反序列化之Newtonsoft.Json,动态解析远端返回的jSON数据的更多相关文章

  1. C# dynamic类型序列化和反序列化之Newtonsoft.Json

    原文:C# dynamic类型序列化和反序列化之Newtonsoft.Json 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011127019/ ...

  2. 【SpringBoot】 中时间类型 序列化、反序列化、格式处理

    [SpringBoot] 中时间类型 序列化.反序列化.格式处理 Date yml全局配置 spring: jackson: time-zone: GMT+8 date-format: yyyy-MM ...

  3. C# 匿名类型序列化、反序列化

    前言 现在提倡前后端分离,分离后服务全部采用接口的方式给前端提供服务,当我们处理自定义查询时必定会多表查询,而处理多表查询时我们又懒的去建view model,建的过多项目也凌乱的很,所以在dao层处 ...

  4. ASP.NET JSON的序列化和反序列化 之 Newtonsoft.Json

    我们用到的类库为:Newtonsoft.Json,通过VS工具中NuGet程序包可以下载. 一:对象转json-序列化 public class Student { public int ID { g ...

  5. Newtonsoft.Json 动态解析 json字符串

    有一个json字符串是动态的,如下面,columns中的数量是不固定的,因此就不能使用反序列化类的方法了: 因此使用这样一种方式,把columns中的所有东西都输出出来: public void Ge ...

  6. ASP.NET中JSON的序列化和反序列化(转)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  7. Python实现JSON序列化和反序列化

    在我的应用中,序列化就是把类转成符合JSON格式的字符串,反序列化就是把JSON格式的字符串转换成类.C#的话直接用Newtonsoft.JSON就可以了,非常好用.本来以为python也会有类似的库 ...

  8. Asp.net中Json的序列化和反序列化(二)

     三.JSON序列化和反序列化日期时间的处理 JSON格式不直接支持日期和时间.DateTime值值显示为“/Date(700000+0500)/”形式的JSON字符串,其中第一个数字(在提供的示例中 ...

  9. 重新想象 Windows 8 Store Apps (60) - 通信: 获取网络信息, 序列化和反序列化

    [源码下载] 重新想象 Windows 8 Store Apps (60) - 通信: 获取网络信息, 序列化和反序列化 作者:webabcd 介绍重新想象 Windows 8 Store Apps ...

随机推荐

  1. Quick RF Tips for General Reference

    传送门:http://www.microwavetools.com/rf-tips-to-make-you-look-smart/ 全文搬运过来的,本篇文章并未有其它意义和目的,仅作为个人参考笔记,我 ...

  2. Codeforces Round #551 (Div. 2)

    传送门 B. Serval and Toy Bricks 题意: 有一些规格相同的方块摆放在 n×m 的矩阵 h 中,h[i][j]代表第 (i,j) 个矩阵摆放的方块的高度: 现给你三个视图: 正视 ...

  3. 【JS】JavaScript 指定日期增加天数

    指定某个日期(字符串),增加n天后,输出日期字符串,格式:年-月-日: /** * [dateAddDays 从某个日期增加n天后的日期] * @param {[string]} dateStr [日 ...

  4. 神奇的 UNICODE 字符 : U+202E

  5. Python——使用高德API获取指定城指定类别POI并实现XLSX文件合并

    # 以下内容为原创,转载请注明出处 1 import xlrd # 读xlsx import xlsxwriter # 写xlsx import urllib.request # url请求,Pyth ...

  6. FPGA

    FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的 ...

  7. (四)Python中的“四大才子”(字符串、列表、字典、集合)

    前戏:在python中把数据序列分为可变(mutable)和不可变(immutable)两种 不可变:string.int.float.tuple 特点:相同对象只是占用一个内存地址,不管有多少个变量 ...

  8. rsync + sersync 实现实时数据同步

    一.环境: 主机1:youzhuan-bak     centos 7.2 主机2:youzhuan-online   centos 7.2 二.部署过程: youzhuan-bak : [root@ ...

  9. redhat7.4切换yum源为免费源

    1.redhat是Linux系统中付费的企业版,虽然安装什么是免费的,但是需要注册. 如果你有注册码,暂请出门左拐(我没有注册码,所以我也不会注册,不用往下看了). Linux系统收费版:RedHat ...

  10. Cocoapods安装 2018-11-01更新

    2018-11-1 更新 pod install 报错 [!] Oh no, an error occurred.   Cocoapods 需要更新 主要涉及2点内容 一.ruby 更新(V2.5.3 ...