`
hideto
  • 浏览: 2678950 次
  • 性别: 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库** 在编程领域,JSON(JavaScript Object Notation)是一种广泛使用的数据交换格式,因其简洁明了的结构而备受青睐。Erlang是一种并发、分布式和容错的函数式编程语言,它在实时系统和大规模...

    erlang json rfc4627

    "erlang-rfc4627-master.zip" 提供的可能就是一个Erlang实现的JSON库,该库可能包含了对JSON的解析和序列化功能,帮助开发者将JSON字符串转换为Erlang术语(terms),或者将Erlang术语转换为JSON字符串。 在"erlang...

    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 图书馆要求 防止方案版本之间的断言...

    erlang jiffy code

    在处理 JSON(JavaScript Object Notation)数据时,Erlang 社区提供了多种库,其中之一便是 Jiffy。Jiffy 是一个轻量级、快速且功能强大的 Erlang JSON 解析器和序列化库。标题中的 "erlang jiffy code" 指的是使用...

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

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

    erlang websocket

    2. **Erlang与JSON的互转**:通过Erlang的JSON库,可以轻松地将Erlang术语转换为JSON字符串,反之亦然。这对于Erlang和Websocket之间的数据交换至关重要,因为JSON是网络通信中广泛使用的数据格式。 三、构建工具...

    用于Erlang和Elixir的JSON对象签名和加密(JOSE).zip

    这个库包含了处理JWT、JWE、JWS和JWK的功能,使得开发者能够轻松地在Erlang和Elixir项目中集成安全的JSON数据处理。 7. 使用Erlang-JOSE库: 要使用`erlang-jose`,首先需要将其添加为项目依赖。在Erlang项目中,...

    erlang_protobuffs

    4. **错误处理**:库通常包含错误处理代码,确保在编码和解码过程中遇到问题时能提供清晰的反馈。 5. **版本控制**:协议缓冲区支持版本控制,允许你在不破坏向后兼容性的情况下更新消息结构。 **四、Erlang ...

    yamerl:纯Erlang中的YAML 1.2和JSON解析器

    **yamerl:纯Erlang中的YAML 1.2和JSON解析器** YAML (YAML Ain't Markup Language) 是一种数据序列化格式,常用于配置文件、数据交换和存储。它以其易读性著称,尤其适合人类编写和机器解析。Erlang是一种功能强大...

    erlang otp 19.1 官网文档 HTML格式

    Erlang OTP 19.1 是一个重要的版本更新,主要包含了Erlang编程语言的运行时系统(ERTS)和其他一系列的库和工具。OTP(Open Telecom Platform)是Erlang的核心部分,提供了一个强大的框架来构建高度并发、容错和...

    JSON和byte[]

    开发者通常使用JSON库或者内置的JSON解析器将JSON字符串转化为编程语言中的数据结构,例如在Java中可以使用`org.json`库,Python中则有内置的`json`模块。 `byte[]`在Java中代表一个字节数组,它是处理二进制数据的...

    Erlang的高级特性和应用

    - VM + 基本库:Erlang虚拟机及基础库,用C编写 - 调试器:帮助开发者调试Erlang程序 - Profile:性能分析工具 - 工具集:提供各种开发辅助工具 **Erlang 的高性能和高可靠性** Erlang 以其简洁的代码实现高并发,...

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

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

    使用erlang连接ES的客户端

    目前,有多个Erlang库可以实现这一功能,如`es_client`可能就是这样的一个库。这个库提供了与Elasticsearch通信的API,使得开发者能够方便地发送HTTP请求到ES集群进行索引、查询、更新等操作。 **安装Erlang ES...

    lloyd-yajl-1.0.9-0-g9c15d72

    然而,需要注意的是,由于JSON库的选择对应用性能有直接影响,因此在选择使用lloyd-yajl之前,开发者应该对其进行性能测试,以确保它能满足项目的需求。 总结来说,lloyd-yajl-1.0.9-0-g9c15d72是Erlang环境中处理...

    基于Erlang VM的语言

    Reia弥补了Erlang在字符串处理、正则表达式和与其他工具库链接方面的不足,并尝试引入面向对象编程(OO)概念。 2. **Lisp Flavoured Erlang (LFE)**: LFE是Erlang VM上的Lisp方言,它既保留了Lisp的语法特性,又...

    erlang+android

    Erlang有多个库可以处理JSON,比如jsx或jiffy,这些库可能被用在"JSONTest"中以演示如何在Erlang环境中解析和序列化JSON对象。 在实际的Erlang与Android集成项目中,开发者可能需要做以下工作: 1. **环境配置**:...

    exomler:用于Erlang的快速XML解析器

    Xmerl是Erlang标准库的一部分,功能全面但相对较为庞大,对于简单或轻量级的XML处理任务,Exomler可能是更优的选择。 使用Exomler,开发者可以通过简单的API来解析XML文档,提取所需的信息。例如,它可以轻松地将...

    erlang-java聊天

    - **消息协议**:为了实现Erlang和Java之间的通信,需要定义一个共同的消息格式,如JSON或二进制编码。这确保了两端可以正确解析和理解对方发送的数据。 **实现细节** 1. **Erlang部分**:Erlang代码可能包含一个...

Global site tag (gtag.js) - Google Analytics