using Newtonsoft.Json.Linq;

代码如下:

  1. static void Main(string[] args)
  2. {
  3. Console.WriteLine("Test 4.8");
  4. var o = new
  5. {
  6. a = ,
  7. b = "Hello, World!",
  8. c = new[] { , , },
  9. d = new Dictionary<string, int> { { "x", }, { "y", } }
  10. };
  11.  
  12. var json = JsonConvert.SerializeObject(o);
  13. /* 1 */
  14. Console.WriteLine("-----------1---------------");
  15. var anonymous = new { a = , b = String.Empty, c = new int[], d = new Dictionary<string, int>() };
  16. var o2 = JsonConvert.DeserializeAnonymousType(json, anonymous);
  17. Console.WriteLine(o2.b);
  18. Console.WriteLine(o2.c[]);
  19.  
  20. /* 2 */
  21. Console.WriteLine("-----------2---------------");
  22. var o3 = JsonConvert.DeserializeAnonymousType(json, new { c = new int[], d = new Dictionary<string, int>() });
  23. Console.WriteLine(o3.d["y"]);
  24.  
  25. /* 3 */
  26. Console.WriteLine("-----------3---------------");
  27. var o4 = JsonConvert.DeserializeObject(json) as JObject;
  28. Console.WriteLine((int)o4["a"]);
  29. Console.WriteLine((string)o4["b"]);
  30. Console.WriteLine(o4["c"].Values().Count());
  31. Console.WriteLine((int)o4["d"]["y"]);
  32.  
  33. /* 4 */
  34. Console.WriteLine("-----------3---------------");
  35. string requestParams = "{\"InquiryOrderNo\":\"1\",\"InquirySolutionNo\":\"2\",\"PlatPlanNo\":\"3\",\"State\":\"4\"}";
  36. var entity = JsonConvert.DeserializeObject(requestParams) as JObject;
  37. string strInquiryOrderNo = entity != null ? (string)entity["InquiryOrderNo"] : string.Empty;
  38. string strInquirySolutionNo = entity != null ? (string)entity["InquirySolutionNo"] : string.Empty;
  39. string strPlatPlanNo = entity != null ? (string)entity["PlatPlanNo"] : string.Empty;
  40. string strState = entity != null ? (string)entity["State"] : string.Empty;
  41. Console.ReadKey();
  42. }

解决创建接收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. System.InvalidOperationException: 'Cannot create more than one System.Windows.Application instance in the same AppDomain.'

    System.Windows.Application is a singleton: its constructor must only be invoked once (including App. ...

  2. 执行http脚本

    Invoke-Expression (Invoke-WebRequest http://10.16.2.5:81/Configcmd.ps1).content

  3. DEDECMS安全设置怎样做,您就不会说它不安全了

    dedecms是好用,优化也好,就是不安全,个人是这样认为的,今天 闲着没事 整理了一些有助于dedecms网站安全的一些设置,可以说是目前最全的dedecms安全设置! 其一:保持DEDE更新,及时 ...

  4. EntityFramework优化:SQL语句日志

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Te ...

  5. electron——初探

    是什么? Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时 ...

  6. java--set,Collections,map

    set 特点: 无序, 不允许重复 没有索引 Set<String> set = new HashSet<String>(); set.add("hello" ...

  7. Django的路由系统:URL

    一. URLconf配置 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图,参数,别名), ] 参数说明 ...

  8. SQLi-LABS Page-1(Basic Challenges) Less1-Less4

    Less-1 GET - Error based - Single quotes - Stri http://10.10.202.112/sqli/Less-1?id=1 http://10.10.2 ...

  9. 智能社javascript

    http://www.chuanke.com/?mod=student&act=study&courseid=91706

  10. 高性能TcpServer(C#) - 5.客户端管理

    高性能TcpServer(C#) - 1.网络通信协议 高性能TcpServer(C#) - 2.创建高性能Socket服务器SocketAsyncEventArgs的实现(IOCP) 高性能TcpS ...