zoukankan      html  css  js  c++  java
  • JDynamic :支持Json反序列化为Dynamic对象

    JDynamic :支持Json反序列化为Dynamic对象

     

    2010年 .NET 4.0 发布前后,从3.5向4.0迁移,那时也有一些异构系统的需求,主要是和PHP打交道,通信使用的HTTP 格式为JSON。

    不过因为接口比较多,也没有统一规范,PHP端相对是制定接口的一方,所以.NET中反序列化时就显得被动了一些。

    当时看中了Dynamic方便使用的优势,并以ASP.NET MVC中 ViewBag->ViewData的转换为参考,制定了一些简单的测试用例,后期就是完善了这些测试用例,使之可以成为一个简单易用的工具类。

    最近整理了一下,把这个工具类放到了Codeplex上 http://jdynamic.codeplex.com/

    以下是一些测试用例:

    一、直接获取值

    dynamic json = new JDynamic("1");
    json.Value //这样就可以读到1

    二、JSON对象

    dynamic json = new JDynamic("{a:'abc'}");
    json.a 可以得到字符串 "abc"

    dynamic json = new JDynamic("{a:3.1416}");
    json.a 的值是 3.1416m

    dynamic json = new JDynamic("{a:1}");
    json.a 的值是 1

    三、集合

    dynamic json = new JDynamic("[1,2,3]");
    json.Length/json.Count 这两个属性是 3
    也可以使用下标来读取: json[0]/ json[2]

    dynamic json = new JDynamic("{a:[1,2,3]}");
    可以这样来读取 json.a[0]/ json.a[2] 


    dynamic json = new JDynamic("[{b:1},{c:1}]");
    可以这样来读取int的值  json[0].b/json[1].c

    四、嵌套JSON对象

    dynamic json = new JDynamic("{a:{a:1} }");
    json.a.a 可以读出值1.

  • 相关阅读:
    行内元素知识点
    WPF可视化控件打印
    C#模拟网站用户登录
    不同版本的浏览器代理编码
    WPF弹出对话确认框
    MSDN中HttpWebRequest/HttpWebResponse用法
    C#Http编程
    WPF ICommand 用法
    详述.NET里class和struct的异同
    WPF页面切换及弹窗
  • 原文地址:https://www.cnblogs.com/jazzka702/p/3596739.html
Copyright © 2011-2022 走看看