加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala的无噪声JSON处理

发布时间:2020-12-16 09:30:33 所属栏目:安全 来源:网络整理
导读:我来自一个dotnet地,但最近一直在考虑替代编程语言的可能性。没什么非常严重的,只是在这里和那里的一些位。最近我发现了Scala,我很着迷。尽管不确定性的修补,我已经对C#中对我很重要的东西进行了一些中间检查,我觉得很满意:功能概念 – 刻度,特征多态
我来自一个dotnet地,但最近一直在考虑替代编程语言的可能性。没什么非常严重的,只是在这里和那里的一些位。最近我发现了Scala,我很着迷。尽管不确定性的修补,我已经对C#中对我很重要的东西进行了一些中间检查,我觉得很满意:功能概念 – 刻度,特征多态 – 刻度,注释 – 刻度,反射和代码 – 刻度。

现在我正在考虑如何使用DLR和“动态”语法糖的帮助来编程C#4.0中实现的JSON处理库的模拟。这是我正在寻找的功能集:

>方便浏览和构建原始的JSON。
> JSON和本机对象/集合之间的自动转换(在一般形式中,问题是无法解决的,尽管可以定义将在95%的时间内运行的约定),对我而言也是如此。

C#4.0的新功能在这里摇滚,因为它允许我覆盖成员访问和类型转换来执行完全自定义的逻辑(如果C#4.0中的一个变量被输入为“动态”,那么你所做的任何事情都将被编译成调用具有合理默认行为的程序员定义的方法 – 更多信息,请参阅DynamicMetaObject.BindXXX methods at MSDN)。例如。我已经覆盖类型转换序列化/反序列化.NET对象和成员访问来管理原始JSON,以便我可以编写以下代码:

var json = Json.Get("http://some.service");
if (json.foo) Console.WriteLine((Foo)json.foo);
json.bars = ((List<Bar>)json.bars).DoSomething();

当然,这不是理想的,因为C#4.0中的动态绑定有扩展方法和类型推断的问题,而且代码依然感觉相当重。但是无论如何,这比使用C#3.5中所使用的所有((JsonObject)json [“quux”])[“baz”]好得多。

一些基础研究表明,Scala没有支持后期绑定的专用语言功能。然而,有这么多的技巧,也许他们可以一起使用来创建上面所示代码的可承受的仿真(或者甚至更好 – 我几乎肯定这是可能的)。请你在这里告诉我一些东西?

解决方法

Scala的一个有用的JSON库是lift-json,它是Lift Web Framework的独立组件。

https://github.com/lift/framework/tree/master/core/json

它支持提取到类,解析和DSL用于创建JSON。

我链接的页面有一个全面的教程,所以我不会只是复制和粘贴它。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读