.Net 的动态对象(二)动态解析Json(JObject)

.Net 的动态对象(二)动态解析Json(JObject)

在定义好了对象的类型后,通过NewtonJson我们可以方便的对一个对象进行序列化和反序列化。

在对象里面的属性不好定义,或者不好确定的情况下,我们也可以直接把我们要反序列化的对象当做Objcet处理,但是这样后续的操作就十分的不变,比如你要使用对象里面的某个属性的时候

通过JObject和JArray来动态解析JSON对象,使它很容易创建和检索的JSON内容而无需基础类型

private string str = "{\"platform\":\"all\",\"audience\":{\"tag\":[\"深圳\",\"北京\"]},\"notification\":{\"android\":{\"alert\":\"Hi, JPush!\",\"title\":\"Send to Android\",\"builder_id\":1,\"extras\":{\"newsid\":321}},\"ios\":{\"alert\":\"Hi, JPush!\",\"sound\":\"default\",\"badge\":\"+1\",\"extras\":{\"newsid\":321}}},\"message\":{\"msg_content\":\"Hi,JPush\",\"content_type\":\"text\",\"title\":\"msg\",\"extras\":{\"key\":\"value\"}},\"sms_message\":{\"content\":\"sms msg content\",\"delay_time\":3600},\"options\":{\"time_to_live\":60,\"apns_production\":false,\"apns_collapse_id\":\"jiguang_test_201706011100\"}}"; public void Execute() { //str 是一串结构层级比较多,且Key又不是很确定的Json串,这种情况当然用Objcet可以反序列化、用Dictionary<string,object>也可以, //但肯定都没有JObject方便,特别是在Get、Set的时候 dynamic model = JObject.Parse(str); if (model.audience != null) { var tag = model.audience.tag;//在不定义类型的情况下我们就将tag 属性取出来了,十分的方便 //将我们要赋值的数组转换成JArray 直接赋值就可以了 var tags = new string[] { "x", "y" }; model.audience.tag = JArray.FromObject(tags); // 将我们要赋值的对象转换成JObject 直接赋值就可以了 var datas = new { name = "xx", org="yy" }; model.audience = JObject.FromObject(datas); } }

转载于:https://www.cnblogs.com/PenZ/p/10318220.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101152.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)


相关推荐

  • 关于hard work的名言_partyhard

    关于hard work的名言_partyhard今天看了美团饿了么的app撕逼,作为程序员而且是app开发者,表示深深的蛋疼了。知乎原文:如何评价美团外卖商家版强杀竞争对手的商家版App进程?不评价回答里各种关于程序员节操问题的论述,能看到这篇博客的,心里都明白需求是谁提的。单聊聊hardcode的事。我不是科班出身,所以之前还这个词还真不是很熟悉。magicnumber倒是听说过。扯远了,http://blog.csdn

    2022年10月28日
  • html可视化布局工具_iframe嵌套多个页面

    html可视化布局工具_iframe嵌套多个页面使用易优cms如何分栏目调用栏目banner图呢,下面小编就给大家提供一个方法来实现。1.先再后台添加栏目字段。1.高级选项,2.字段管理,3.栏目字段,4.新增字段 2.新增字段,字段标题“栏目banner图”,字段名称“banner”,字段类型“单张图”3.模板标签的调用。添加完成后,我们在模板文件里找到图片相对应的代码,填写为我们新增的字段代码即可。当前栏目banner图:{$ey…

  • 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)

    腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)

  • gauss-jordan消元法求矩阵的逆_伪逆矩阵求法

    gauss-jordan消元法求矩阵的逆_伪逆矩阵求法转载来源于:http://student.zjzk.cn/course_ware/web-gcsx/gcsx/chapter3/chapter3.2.htmhttp://student.zjzk.cn/course_ware/web-gcsx/gcsx/chapter1/chapter1.2.htm#21先回顾一下高斯消元法:§1.2 消元法与矩阵的初等

  • Sober算子边缘检测与Harris角点检测1「建议收藏」

    Sober算子边缘检测与Harris角点检测1「建议收藏」此篇文章主要介绍了Sobel算子的底层运算规律,和cvHarris的相关介绍Harrisopencv的对应代码cv2.cornerHarris(src,blockSize,ksize,k[,dst[,borderType]])参数类型src-输入灰度图像,float32类型blockSize-用于角点检测的邻域大小,就是上面提到的窗口的尺寸ksize-用于计算梯

  • 完美可用-DirectX修复工具增强版DirectX Repair

    完美可用-DirectX修复工具增强版DirectX RepairDirectX修复工具最新版:DirectXRepairV3.7增强版  NEW!版本号:V3.7.0.26539大小:107MB/7z格式压缩,189MB/zip格式压缩,322MB/解压后其他版本:标准版   在线修复版MD5校验码:DirectXRepair.exe/0615325098da4e624ef854af60b56ba2       DirectX_…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号