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.

  • 相关阅读:
    利用performSelectorInBackground和performSelectorOnMainThread实现多线程刷新UI
    iOS之NSCocoaErrorDomain Code=3840
    iOS之原生地图与高德地图
    iOS之Storyboard References
    iOS之内购
    iOS之上线被拒
    iOS之可拖拽重排的CollectionView
    iOS之内购
    ios专题
    ios专题
  • 原文地址:https://www.cnblogs.com/jazzka702/p/3596739.html
Copyright © 2011-2022 走看看