json字符串直接反序列化为dynamic对象

xyq1986 2015-12-19 08:37:05
在接收一些接口的返回json值时,为了省事免去再定义一个类,经常直接把json字符串反序列化成dynamic对象,然后再直接访问各个属性,这样写妥当吗?会不会太消耗性能?
感觉最常用到dynamic的就是这个了,大家还有其它使用场景吗
...全文
264 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-12-20
  • 打赏
  • 举报
回复
如果是不会去修改他的值,当然是可以的。简单有效
  • 打赏
  • 举报
回复
我给你举个例子,我最近看了微信sdk的代码(按说这是标准sdk,写它的人不应该是很低级的员工),对腾讯程序员素质之低,感到非常震惊。比如说要创建订单有许多种,有些根本就是不同种,例如一个看似重要的字段 openid,在有些统一下单业务中是应该不填的,而在另外许多统一下单业务中又是“必填”的。如果该不填的时候填了,或者该填的时候没填,就出现诡异现象了——它们显然也懒得做许多数据边界的检查。 在各种论坛上经常有用户骂:系统崩溃了,我去给电影票下单,怎么支付时总是说“下单编号与支付编号不一致,请核实后再试。”之类的话,好像试了好几天了,系统都没有好。 经常有这种话。程序员论坛也会有许多类似问题,都没有什么回答。因为这种问题其实很低级。 在微信的sdk中,可以看到是胡乱抽象、组合的。通常我们对于代码执行的路径,会有许多种分支逻辑。但是这是靠着在对象数据结构上的清晰,分类的清晰,来避免毫无价值的分支、劳民伤财、在用户那里才丢人现眼地崩溃出的那些分支的。 如果有强类型的思维方式,那么也就不用花费巨大的人力去保证这些数据边界检查。而且其它程序员也能成文自明地、毫不费力地去编程。在debug时更是提高了数十倍效率。这是弱类型所缺少的特性。 我想腾讯公司可以给程序员极高的工资,比一般的软件公司平均工资高5倍。但是一个软件公司再土豪,也不该找那样的程序员来写代码啊!
  • 打赏
  • 举报
回复
对一些程序员来说,可能最喜欢考虑“我想要点自由,反正我自己用、自己保证可靠就行了”。 对于另外一些主程序员来说,可能最喜欢的就是“编程之后过一段就忘记它,没有精力去纠缠具体的代码”。当管理自己的代码就像管理100个人的代码一样,这时候你对自由的理解就不一样了,你就不会仅仅希望有个人狭隘式的自由编码习惯,你希望那种能有勇气对很复杂的系统随时进行巨大的改变时的那种自由。那么强类型编程,可以保证这种自由。
  • 打赏
  • 举报
回复
谈不上“太消耗”性能,但是一定会消耗性能的。这个可以自己衡量和测试。有时候这种消耗很明显,有时候则不重要。 对我来说,最主要地区别,在于“可靠性”。如果你使用强类型的编程方式,你就知道编译器可以给你保证许多检查。反之,你就知道自己的代码永远都有着弱类型所带来的“很可能只有到用户面前,才突然崩溃,令人丢人现眼”的遗憾。因此自己选择你要更谨慎而准确的编程,还是更松散而灵活的编程。 没有定“死”的标准。但是我不主张弱类型。
showjim 2015-12-19
  • 打赏
  • 举报
回复
都用dynamic了,还需要考虑什么性能与可靠性。。。

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧