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可直接使用更方便,低版本的只能其他方法。

最新文章

  1. python中string模块
  2. MySQL连接线程kill利器之pt-kill
  3. ecshop 默认图处理
  4. Python核心编程--学习笔记--7--字典和集合
  5. UI:基础
  6. Part 56 Generics in C#
  7. EXT经验--查询EditorGridPanel的tbar的默认配置对象
  8. 韦东山yy公开课笔记(2)--各种杂的问题
  9. iOS隐藏tabBar的方法
  10. debian安装vld来查看Opcode,PHP调优。
  11. 管理维护Replica Sets
  12. LeetCode题目总结(二)
  13. Linux-硬件
  14. loadrunner使用https请求
  15. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第5章编程练习9
  16. 2019.4.14 python基础30
  17. call apply bind的区别
  18. Python学习—数据库篇之SQL语句
  19. AE插入音乐
  20. vue+elementui按需引入

热门文章

  1. yii2.0的学习之旅(一)
  2. .NET Core RabbitMQ探索(2)——RabbitMQ的Exchange
  3. mysql只显示表名和备注
  4. MES助力日立电梯提升精细化管理水平
  5. i春秋-第三届“百越杯”福建省高校网络空间安全大赛-Do you know upload?
  6. Android RadioButton控件
  7. element-ui的form表单样式改动
  8. java基础类型的byte为长度
  9. 2-2array结构
  10. 关于微信开发者工具创建项目和导入项目半天不响应或者socket hang out