2010年.NET4.0发布前后,从3.5向4.0迁移,那时也有一些异构系统的需求,主要是和PHP打交道,通信使用的HTTP格式为JSON。
不过因为接口比较多,也没有统一规范,PHP端相对是制定接口的一方,所以.NET中反序列化时就显得被动了一些。
当时看中了Dynamic方便使用的优势,并以ASP.NETMVC中ViewBag->ViewData的转换为参考,制定了一些简单的测试用例,后期就是完善了这些测试用例,使之可以成为一个简单易用的工具类。
最近整理了一下,把这个工具类放到了Codeplex上https://jdynamic.codeplex.com/
以下是一些测试用例:
一、直接获取值dynamicjson=newJDynamic("1");json.Value//这样就可以读到1
二、JSON对象dynamicjson=newJDynamic("{a:'abc'}");json.a可以得到字符串"abc"dynamicjson=newJDynamic("{a:3.1416}");json.a 的值是3.1416mdynamicjson=newJDynamic("{a:1}");json.a的值是1
三、集合dynamicjson=newJDynamic("[1,2,3]");json.Length/json.Count 这两个属性是3也可以使用下标来读取: json[0]/json[2]dynamicjson=newJDynamic("{a:[1,2,3]}");可以这样来读取 json.a[0]/json.a[2]
dynamicjson=newJDynamic("[{b:1},{c:1}]");可以这样来读取int的值 json[0].b/json[1].c
四、嵌套JSON对象dynamicjson=newJDynamic("{a:{a:1}}");json.a.a可以读出值1.
评论