`
hideto
  • 浏览: 2650089 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Erlang的JSON库

阅读更多
使用下列JSON库:
http://www.lshift.net/blog/2007/02/17/json-and-json-rpc-for-erlang

该JSON库采用Joe Armstrong prefered Data type mapping
即:
JSON Obj    = type obj()   = {obj, [{key(), val()}]}
JSON Array  = type array() = [val()]
JSON Number = type num()   = int() | float() 
JSON String = type str()   = bin()
JSON true false null       = true, false null (atoms)
With Type val() = obj() | array() | num() | str() | true | false | null
and key() being a str(). (Or a binary or atom, during JSON encoding.)


测试如下:
Eshell V5.6.3  (abort with ^G)
1> O = rfc4627:encode({obj, [{name, hideto}, {age, 23}]}).
"{\"name\":\"hideto\",\"age\":23}"
2> rfc4627:decode(O).
{ok,{obj,[{"name",<<"hideto">>},{"age",23}]},[]}
3> A = rfc4627:encode([1,2,3,4,5]).
"[1,2,3,4,5]"
4> rfc4627:decode(A).
{ok,[1,2,3,4,5],[]}
5> N = rfc4627:encode(12345).
"12345"
6> rfc4627:decode(N).
{ok,12345,[]}
7> S = rfc4627:encode("12345").
"[49,50,51,52,53]"
8> rfc4627:decode(S).
{ok,"12345",[]}
9> T = rfc4627:encode(true).
"true"
10> rfc4627:decode(T).
{ok,true,[]}
11> F = rfc4627:encode(false).
"false"
12> rfc4627:decode(F).
{ok,false,[]}
13> Null = rfc4627:encode(null).
"null"
14> rfc4627:decode(Null).
{ok,null,[]}
分享到:
评论

相关推荐

    jsone:Erlang JSON库

    jsone:Erlang JSON库

    erljson_bench:Erlang JSON库的基准测试

    erljson_bench 用于比较各种JSON编码/解码库的脚本图书馆比较ejson 瞬间json jsonx jsx mochijson2要求要执行这些基准测试,路径上必须有一个有效的erlang(erl和escript)。建立和运行要下载依赖项并进行编译: ...

    ejsv:Erlang Json模式验证器

    Erlang Json模式验证器 该库寻求支持所有关于JSON对象的模式验证标准。 首先是简单性和完整性,然后是性能。 版权所有2018 Apache 2.0 支持的架构版本 杰森模式v3 杰森模式v4 图书馆要求 防止方案版本之间的断言...

    jesse:jesse(JSon Schema Erlang)是Erlang的JSON Schema验证器的实现

    杰西 jesse(JSON模式Erlang)是Erlang的JSON模式验证器的实现。 jesse实现了以下规范: Erlang API文件自动生成的文档可从。 请记住,公共API仅是jesse.erl模块。快速入门-CLI 您可以使用以下命令从CLI启动jesse ...

    embjson:将 JSON 结构嵌入到 Erlang 代码中

    解析转换库embjson允许直接在 Erlang 源中使用 JSON 语法。 嵌入的 JSON 结构在编译过程中转换为 Erlang 术语。 生成的结构格式取决于自定义回调模块。 单元测试中的使用示例 使用 yaws json2 结构: -compile({...

    awesome-erlang:精湛的Erlang框架,库和软件的精选列表

    具有直观HTTP / JSON API的无缝多主同步数据库,旨在提高可靠性健壮,无处不在且可大规模扩展的消息平台(XMPP,MQTT,SIP服务器) 对Erlang运行时系统ERTS和虚拟机BEAM的描述。 基于Erlang / OTP的分布式MQTT消息...

    josser:Json 模式生成器 Erlang

    JoSSER 是 Erlang 中的一个库,用于从 Json 生成 Json Schema。 它实现了 [Draft 03] ( ) 的一部分。 它适用于 [jesse] ( )。 它仅支持 [jsx] ( )(目前)。 它支持“作为元数据的值”,这意味着 json 中的值...

    yajler:Erlang NIF 使用 yajl 库对 json 进行编码和解码

    基于优秀书籍 Erlang 和 OTP in Action 第 12 章中的 NIF 示例的简单 json 编码和解码。 这个实现的目的是在不丢失任何语义的情况下尽可能简洁地用 Erlang 术语表示 JSON。

    optic:一个ErlangOTP库,用于读取和更新深层嵌套的不可变数据

    视力概述这是一个基于的精神,用于检索和修改嵌套值的Erlang / OTP。 用于深层嵌套值的功能选择器是通过构成“光学”来构造的,每个“光学”都指定了一种专注于特定类型值的方法。 例如,假设我们有一个表示要修改...

    yaws-json2:Yaws json2 库

    yaws-json2 yaws-json2 是来自网络服务器的编码器/解码器。安装在 rebar.config 中: { yaws_json2 , " .* " , { git , " git://github.com/myua/yaws-json2 " , { tag , " master " }}}用法使用yaws_json2:decode_...

    jsonfilter:使用流式 json 的 otp 方法

    构建库并运行测试 $ rebar get-deps $ rebar compile $ rebar eunit 过滤json流 过滤json流 // JSON { "books" : [ { "title" : "a wrinkle in time" , "author" : "madeleine l'engel" , "editions" : [ 1962 ,...

    mason:另一个JSON库

    石匠 一个OTP库 建造 $ rebar3 compile

    couchbeam:Erlang中的Apache CouchDB客户端

    Couchbeam-用于Erlang应用程序的简单Barrel和Apache CouchDB客户端库 版权所有(c)2009-2016BenoîtChesneau。 版本: 1.4.2 横梁 Couchbeam是或的简单erlang库。 Couchbeam为您提供了功能齐全且易于访问的客户端...

    jesse:杰西

    jesse(JSON模式Erlang)是Erlang的JSON模式验证器的实现。 jesse实现了以下规范: Erlang API文件 自动生成的文档可从。 请记住,公共API仅是jesse.erl模块。 快速入门-CLI 您可以使用以下命令从CLI启动jesse ...

    ostracon:用于实时投票收集的 Erlang 库

    ###Dependencies(在构建过程中自动安装): 用于 HTTP 连接的牛仔考利布牧场Jiffy 用于 JSON 创建 使用 relx 包管理器构建。 ###构建说明cd 到提交的根目录键入“Make intro”以在 localhost:8081 上构建和运行...

    plywood:分层数据存储和检索

    胶合板 分层数据存储和检索服务器 ... 如果这最终不适合您,您可以尝试从 Erlang github 存储库进行源安装: 建造和运行胶合板 建造 CentOS 7 系统 Erlang 会很痛苦,使用 Erlang 解决方案: : De

    Restapp:带有 PhoenixEcto 和相关模型和 jwt 的 Json API

    使用 JWT 的 Phoenix Rest JSON API 示例 需要 Erlang、Elixir 和 postgres 要测试这一点: 克隆这个 repo 在新文件夹中,转到 restapp/config/dev.exs 并输入您的 postgres 数据库、用户名和密码。 还要在 ...

    netspec:Haskell库可简化某些联网任务

    #NetSpec Haskell库可简化静态网络任务 某些联网任务的格式非常简单: 设置给定数量的连接和初始状态 循环直到满足某些条件 结束并关闭连接 NetSpec提供了一种指定和运行此类任务的简单方法,还提供了便捷功能! 并...

    Paseto:Paseto(与平台无关的安全令牌)的Elixir实现

    与JSON Web令牌(JWT)不同,JSON Web令牌为开发人员提供了足够多的绳索来挂起自己,而Paseto仅允许安全操作。 JWT给您“算法敏捷性”,Paseto给您“版本化协议”。 您不可能使用Paseto。 警告: JWT和Paseto都不是...

    mongodb-new.rar

    它是一个面向集合的,模式自由的文档型数据 库。 具体特点总结如下: (1)面向集合存储,易于存储对象类型的数据 (2)模式自由 (3)支持动态查询 (4)支持完全索引,包含内部对象 (5)支持复制和故障恢复 (6)...

Global site tag (gtag.js) - Google Analytics