Erlang JSON API数据生命周期

hai*_*hum 3 api erlang json

在JSON API中使用Erlang的最佳实践是什么?我的意思是你如何处理JSON - 逻辑 - 数据库 - 逻辑 - JSON生命周期.您在Erlang应用程序中使用了哪些数据结构,工具和技术?

I G*_*ERS 7

我倾向于在Erlang中使用JSON的两个工具:jsxjiffy.检查两者,因为它们具有略微不同的特性,具有灵活性和速度.

主要问题是Erlang没有内置字典类型.因此,JSON对象通常表示为属性列表,即

{ a : 10,
  b : 20 }
Run Code Online (Sandbox Code Playgroud)

表示为元组列表:

[{a, 10}, {b, 20}]
Run Code Online (Sandbox Code Playgroud)

这是值得关注的重点.这也意味着应该尽可能避免使用JSON作为内部表示格式,因为从长远来看它很难处理.

  • 另一种选择是[Mochiweb]附带的"mochisjon2"(https://github.com/mochi/mochiweb).[Webmachine](https://github.com/basho/webmachine)基于Mochiweb. (2认同)

ala*_*rik 5

对于使用JSON,我使用mochijson2和Erlson.

mochijson2mochiweb项目的一部分.它是一个稳定的,经过实战考验的纯Erlang实现,具有灵活的JSON解析和生成API.

Erlson为Erlang提供了一个很好的字典语法,在使用JSON时特别方便.例如:

#[
    foo = 1,
    bar = "some string",
    nested = #[i = 1, b = true]
]
Run Code Online (Sandbox Code Playgroud)

此外,Erlson带有erlson:to_jsonerlson:from_json功能Erlson和JSON使用之间进行转换mochiweb2.

(免责声明:我是Erlson的作者)