使用下列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库** 在编程领域,JSON(JavaScript Object Notation)是一种广泛使用的数据交换格式,因其简洁明了的结构而备受青睐。Erlang是一种并发、分布式和容错的函数式编程语言,它在实时系统和大规模...
"erlang-rfc4627-master.zip" 提供的可能就是一个Erlang实现的JSON库,该库可能包含了对JSON的解析和序列化功能,帮助开发者将JSON字符串转换为Erlang术语(terms),或者将Erlang术语转换为JSON字符串。 在"erlang...
erljson_bench 用于比较各种JSON编码/解码库的脚本图书馆比较ejson 瞬间json jsonx jsx mochijson2要求要执行这些基准测试,路径上必须有一个有效的erlang(erl和escript)。建立和运行要下载依赖项并进行编译: ...
Erlang Json模式验证器 该库寻求支持所有关于JSON对象的模式验证标准。 首先是简单性和完整性,然后是性能。 版权所有2018 Apache 2.0 支持的架构版本 杰森模式v3 杰森模式v4 图书馆要求 防止方案版本之间的断言...
在处理 JSON(JavaScript Object Notation)数据时,Erlang 社区提供了多种库,其中之一便是 Jiffy。Jiffy 是一个轻量级、快速且功能强大的 Erlang JSON 解析器和序列化库。标题中的 "erlang jiffy code" 指的是使用...
杰西 jesse(JSON模式Erlang)是Erlang的JSON模式验证器的实现。 jesse实现了以下规范: Erlang API文件自动生成的文档可从。 请记住,公共API仅是jesse.erl模块。快速入门-CLI 您可以使用以下命令从CLI启动jesse ...
2. **Erlang与JSON的互转**:通过Erlang的JSON库,可以轻松地将Erlang术语转换为JSON字符串,反之亦然。这对于Erlang和Websocket之间的数据交换至关重要,因为JSON是网络通信中广泛使用的数据格式。 三、构建工具...
这个库包含了处理JWT、JWE、JWS和JWK的功能,使得开发者能够轻松地在Erlang和Elixir项目中集成安全的JSON数据处理。 7. 使用Erlang-JOSE库: 要使用`erlang-jose`,首先需要将其添加为项目依赖。在Erlang项目中,...
4. **错误处理**:库通常包含错误处理代码,确保在编码和解码过程中遇到问题时能提供清晰的反馈。 5. **版本控制**:协议缓冲区支持版本控制,允许你在不破坏向后兼容性的情况下更新消息结构。 **四、Erlang ...
**yamerl:纯Erlang中的YAML 1.2和JSON解析器** YAML (YAML Ain't Markup Language) 是一种数据序列化格式,常用于配置文件、数据交换和存储。它以其易读性著称,尤其适合人类编写和机器解析。Erlang是一种功能强大...
Erlang OTP 19.1 是一个重要的版本更新,主要包含了Erlang编程语言的运行时系统(ERTS)和其他一系列的库和工具。OTP(Open Telecom Platform)是Erlang的核心部分,提供了一个强大的框架来构建高度并发、容错和...
开发者通常使用JSON库或者内置的JSON解析器将JSON字符串转化为编程语言中的数据结构,例如在Java中可以使用`org.json`库,Python中则有内置的`json`模块。 `byte[]`在Java中代表一个字节数组,它是处理二进制数据的...
- VM + 基本库:Erlang虚拟机及基础库,用C编写 - 调试器:帮助开发者调试Erlang程序 - Profile:性能分析工具 - 工具集:提供各种开发辅助工具 **Erlang 的高性能和高可靠性** Erlang 以其简洁的代码实现高并发,...
解析转换库embjson允许直接在 Erlang 源中使用 JSON 语法。 嵌入的 JSON 结构在编译过程中转换为 Erlang 术语。 生成的结构格式取决于自定义回调模块。 单元测试中的使用示例 使用 yaws json2 结构: -compile({...
目前,有多个Erlang库可以实现这一功能,如`es_client`可能就是这样的一个库。这个库提供了与Elasticsearch通信的API,使得开发者能够方便地发送HTTP请求到ES集群进行索引、查询、更新等操作。 **安装Erlang ES...
然而,需要注意的是,由于JSON库的选择对应用性能有直接影响,因此在选择使用lloyd-yajl之前,开发者应该对其进行性能测试,以确保它能满足项目的需求。 总结来说,lloyd-yajl-1.0.9-0-g9c15d72是Erlang环境中处理...
Reia弥补了Erlang在字符串处理、正则表达式和与其他工具库链接方面的不足,并尝试引入面向对象编程(OO)概念。 2. **Lisp Flavoured Erlang (LFE)**: LFE是Erlang VM上的Lisp方言,它既保留了Lisp的语法特性,又...
Erlang有多个库可以处理JSON,比如jsx或jiffy,这些库可能被用在"JSONTest"中以演示如何在Erlang环境中解析和序列化JSON对象。 在实际的Erlang与Android集成项目中,开发者可能需要做以下工作: 1. **环境配置**:...
Xmerl是Erlang标准库的一部分,功能全面但相对较为庞大,对于简单或轻量级的XML处理任务,Exomler可能是更优的选择。 使用Exomler,开发者可以通过简单的API来解析XML文档,提取所需的信息。例如,它可以轻松地将...
- **消息协议**:为了实现Erlang和Java之间的通信,需要定义一个共同的消息格式,如JSON或二进制编码。这确保了两端可以正确解析和理解对方发送的数据。 **实现细节** 1. **Erlang部分**:Erlang代码可能包含一个...