using Newtonsoft.Json.Linq;

代码如下:

 static void Main(string[] args)
{
Console.WriteLine("Test 4.8");
var o = new
{
a = ,
b = "Hello, World!",
c = new[] { , , },
d = new Dictionary<string, int> { { "x", }, { "y", } }
}; var json = JsonConvert.SerializeObject(o);
/* 1 */
Console.WriteLine("-----------1---------------");
var anonymous = new { a = , b = String.Empty, c = new int[], d = new Dictionary<string, int>() };
var o2 = JsonConvert.DeserializeAnonymousType(json, anonymous);
Console.WriteLine(o2.b);
Console.WriteLine(o2.c[]); /* 2 */
Console.WriteLine("-----------2---------------");
var o3 = JsonConvert.DeserializeAnonymousType(json, new { c = new int[], d = new Dictionary<string, int>() });
Console.WriteLine(o3.d["y"]); /* 3 */
Console.WriteLine("-----------3---------------");
var o4 = JsonConvert.DeserializeObject(json) as JObject;
Console.WriteLine((int)o4["a"]);
Console.WriteLine((string)o4["b"]);
Console.WriteLine(o4["c"].Values().Count());
Console.WriteLine((int)o4["d"]["y"]); /* 4 */
Console.WriteLine("-----------3---------------");
string requestParams = "{\"InquiryOrderNo\":\"1\",\"InquirySolutionNo\":\"2\",\"PlatPlanNo\":\"3\",\"State\":\"4\"}";
var entity = JsonConvert.DeserializeObject(requestParams) as JObject;
string strInquiryOrderNo = entity != null ? (string)entity["InquiryOrderNo"] : string.Empty;
string strInquirySolutionNo = entity != null ? (string)entity["InquirySolutionNo"] : string.Empty;
string strPlatPlanNo = entity != null ? (string)entity["PlatPlanNo"] : string.Empty;
string strState = entity != null ? (string)entity["State"] : string.Empty;
Console.ReadKey();
}

解决创建接收json data的具体对象,缺点不是强类型,无法保证手误导致失败,保证方法是写单元测试。 对于高版本的net framewrok 有动态 类型dynamic可直接使用更方便,低版本的只能其他方法。

json data转匿名对象C#的更多相关文章

  1. C#匿名对象(转JSON)

    多类型匿名对象 var result = new { pages = , users = new System.Collections.ArrayList { ,name="}, ,name ...

  2. C# JavascriptSerializer与匿名对象打造Json的完美工具

    一:背景 在web项目中经常需要生成json数据,返回给前端ajax. 无论是ashx,还是WebMethod,可以人工的用字符串去拼接,最终得到json数据. 有没有更好的方法呢?我个人推荐使用Ja ...

  3. Json.Net 反序列化成匿名对象

    反序列化一个object var str1 = "{id:1,name:'111',x:[1,2,3],y:{a:'ssss',b:'dddd'}"; var obj1 = Jso ...

  4. 使用 dynamic 标记解析JSON字符串 JDynamic :支持Json反序列化为Dynamic对象

    使用 dynamic 标记解析JSON字符串  http://www.cnblogs.com/taotaodetuer/p/4171327.html 1 string jsonStr = " ...

  5. 利用JAVA反射机制将JSON数据转换成JAVA对象

    net.sf.json.JSONObject为我们提供了toBean方法用来转换为JAVA对象, 功能更为强大,  这里借鉴采用JDK的反射机制, 作为简单的辅助工具使用,   有些数据类型需要进行转 ...

  6. .NET中如何使用反序列化JSON字符串/序列化泛型对象toJsonStr

    在进行 .NET Web MVC 框架开发的网站程序的时候,我们都会遇到最关键的问题,数据传输.   .NET MVC 4中的ControllerBase类建议我们用ViewBag动态数据字典形式(t ...

  7. JSON数据与JavaScript对象转换

    使用JSON时,最基本的工作就是JSON数据与JavaScript对象之间的互相转换.如浏览器 从服务器端获得JSON数据,然后转换为JavaScript对象在网页输出. SON: JavaScrip ...

  8. 多层次的Json字符串转化为对象

    using Arvato.CRM.DataTrans.ConsoleHost.Model;using System;using System.Collections.Generic;using Sys ...

  9. C# 匿名对象(匿名类型)、var、动态类型 dynamic

    本文是要写的下篇<C#反射及优化用法>的前奏,不能算是下一篇文章的基础的基础吧,有兴趣的朋友可以关注一下. 随着C#的发展,该语音内容不断丰富,开发变得更加方便快捷,C# 的锋利尽显无疑. ...

随机推荐

  1. Prometheus监控学习笔记之Prometheus查询无数据或者Grafana不显示数据的诡异问题

    0x00 概述 Prometheus和Grafana部署完成后,网络正常,配置文件正常,抓取agent运行正常,使用curl命令获取监控端口数据正常,甚至Prometheus内的targets列表内都 ...

  2. 2019-11-27-WPF-全屏透明窗口

    原文:2019-11-27-WPF-全屏透明窗口 title author date CreateTime categories WPF 全屏透明窗口 lindexi 2019-11-27 09:22 ...

  3. DLT645 1997 协议解析

    源码下载  -> 提取码 QQ:505645074 DLT645.zip 工具 源码 规约解析 DL/T645-07: 数据帧格式: 注意事项: (1)前导字节-一般在传输帧信息前,都要有0~4 ...

  4. 在Linux系统中运行并简单的测试RabbitMq容器

    以前使用的是Windows下面的RabbitMq,需要先安装 Erlang的语言环境等,这次直接在Linux中的Docker容器来测试一下 1:docker配置RabbitMq的指令 docker r ...

  5. Vue监控器watch的全面解析

    前言 前面讲到了计算属性computed,这次讲的是监控器watch,主要任务就是监控变量的变化 正文 watch是一个对象,键是需要观察的表达式,值是对应回调函数.值也可以是方法名,或者包含选项的对 ...

  6. ActiveMQ反序列化(CVE-2015-5254) && ActiveMQ任意文件写入 (CVE-2016-3088)

    ActiveMQ 反序列化漏洞(CVE-2015-5254) 漏洞详情 ActiveMQ启动后,将监听61616和8161两个端口,其中消息在61616这个端口进行传递,使用ActiveMQ这个中间件 ...

  7. 结对编程-python实现

    目录 软件工程结对项目:Python实现wc程序 结对项目Github地址 项目成员 项目要求 说明 需求 PSP表格 解题思路描述 设计实现 代码组织图 代码分析 代码覆盖率 测试 单元测试 回归测 ...

  8. 011.maven 继承与聚合

    聚合:对于聚合模块来说,它知道有哪些被聚合的模块,而对于被聚合的模块来说,它们不知道被谁聚合了,也不知道它的存在: 继承:对于继承关系的父POM来说,它不知道自己被哪些子模块继承了,对于子POM来说, ...

  9. 【Idea】idea中编译后无法提示错误信息的解决方案

  10. PHP数组相关算法

    一.排序算法 1. 冒泡排序 2. 选择排序 二.查找算法 1. 遍历 2. 二分查找