【问题标题】:Library to convert JSON string to Erlang record将 JSON 字符串转换为 Erlang 记录的库
【发布时间】:2017-01-29 12:52:15
【问题描述】:

我有一个很大的 JSON 字符串,我想将此字符串转换为 Erlang 记录。 我找到了jiffy 库,但它并没有完全转换为记录。

例如: jiffy:decode(<<"{\"foo\":\"bar\"}">>). 给了

{[{<<"foo">>,<<"bar">>}]}

但我想要以下输出:

{ok,{obj,[{"foo",<<"bar">>}]},[]}

是否有任何库可用于所需的输出?

或者是否有任何库可以与jiffy 结合使用以进一步修改它的输出。

考虑到 JSON 字符串很大的事实,我希望输出是最短时间。

【问题讨论】:

  • 很奇怪的问题。为什么解码函数要加上这个{obj,List}元组,为什么\"foo\"\"bar\"要解码不同,最后一个空列表是什么意思(我猜是输入字符串在第一项之后的剩余部分已解码)?看起来您所期望的非常具体,并且您的问题中缺少一些上下文。我鼓励您查看如何使用库输出,并最终解释缺少的功能。

标签: json erlang record


【解决方案1】:

看看ejson,来自文档:

基于 jsx 的 Erlang 的 JSON 库。它为 jsx 提供了一个声明式接口,我们需要通过该接口指定转换规则,ejson 将根据规则转换元组。

我制作这个库不仅可以简化编码,还可以简化 JSON 到 Erlang 记录的解码...

为了使 ejson 生效,需要使用 parse_transform ejson_trans 编译源文件。所有具有 -json 属性的记录都可以在以后转换为 JSON。

【讨论】:

    猜你喜欢
    • 2013-02-02
    • 2018-06-28
    • 2019-01-16
    • 2011-03-26
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多