erlang 下好用的json 库 ej
来源:互联网 发布:网络运营商 编辑:程序博客网 时间:2024/05/29 10:55
erlang 下边的json 库用过几个,今天发现了ej库,解析和生成都很方便,下边是使用说明,里边详细的用法看里边的例子就可以了,这里给出的是为什么这么用,里边数据是怎么生成的。
1. ej 库下载地址是:
https://codeload.github.com/seth/ej/zip/master
2. 使用说明
% menu.json file%{"menu": {%"id": "file",%"value": "File",%"popup": {%"menuitem": [%{"value": "New", "onclick": "CreateNewDoc()"},%{"value": "Open", "onclick": "OpenDoc()"},%{"value": "Close", "onclick": "CloseDoc()"}%]%}%}}% menu.terms%{struct,%[{<<"menu">>,%{struct,%[{<<"id">>,<<"file">>},%{<<"value">>,<<"File">>},%{<<"popup">>,%{struct,%[{<<"menuitem">>,%[{struct,%[{<<"value">>,<<"New">>},%{<<"onclick">>,<<"CreateNewDoc()">>}]},%{struct,%[{<<"value">>,<<"Open">>},%{<<"onclick">>,<<"OpenDoc()">>}]},%{struct,%[{<<"value">>,<<"Close">>},%{<<"onclick">>,<<"CloseDoc()">>}]}]}]}}]}}]}.% menu.alt_terms%{[{<<"menu">>,%{[{<<"id">>,<<"file">>},%{<<"value">>,<<"File">>},%{<<"popup">>,%{[{<<"menuitem">>,%[{[{<<"value">>,<<"New">>},{<<"onclick">>,<<"CreateNewDoc()">>}]},%{[{<<"value">>,<<"Open">>},{<<"onclick">>,<<"OpenDoc()">>}]},%{[{<<"value">>,<<"Close">>},%{<<"onclick">>,<<"CloseDoc()">>}]}]}]}}]}}]}.% 产生测试数据make_terms(JsonFile) -> {ok, Json} = file:read_file(JsonFile), Base = filename:basename(JsonFile), Decoder = mochijson2:decoder([{object_hook, fun({struct,L}) -> {L} end}]), AltTerms = Decoder(Json), Terms = mochijson2:decode(Json), file:write_file(Base ++ ".terms", io_lib:format("~p.~n", [Terms])), file:write_file(Base ++ ".alt_terms", io_lib:format("~p.~n", [AltTerms])).getwid()-> {[{<<"widget">>, {[{<<"version">>,<<"1">>}, {<<"values">>,[1,2,3,4,5]}, {<<"debug">>,<<"on">>}, {<<"window">>, {[{<<"title">>,<<"Sample Konfabulator Widget">>}, {<<"name">>,<<"main_window">>}, {<<"width">>,500}, {<<"height">>,500}]}}, {<<"image">>, {[{<<"src">>,<<"Images/Sun.png">>}, {<<"name">>,<<"sun1">>}, {<<"hOffset">>,250}, {<<"vOffset">>,250}, {<<"alignment">>,<<"center">>}]}}, {<<"text">>, {[{<<"data">>,<<"Click Here">>}, {<<"size">>,36}, {<<"style">>,<<"bold">>}, {<<"name">>,<<"text1">>}, {<<"hOffset">>,250}, {<<"vOffset">>,100}, {<<"alignment">>,<<"center">>}, {<<"onMouseUp">>, <<"sun1.opacity = (sun1.opacity / 100) * 90;">>}]}}]}}]}.getmenu()-> {[{<<"menu">>, {[{<<"id">>,<<"file">>}, {<<"value">>,<<"File">>}, {<<"popup">>, {[{<<"menuitem">>, [{[{<<"value">>,<<"New">>},{<<"onclick">>,<<"CreateNewDoc()">>}]}, {[{<<"value">>,<<"Open">>},{<<"onclick">>,<<"OpenDoc()">>}]}, {[{<<"value">>,<<"Close">>}, {<<"onclick">>,<<"CloseDoc()">>}]}]}]}}]}}]}.test()-> Wid = getwid(), {ok, [Widget]} = file:consult("/home/yangzm/tmp/widget.alt_terms"), Ret = ej:get({"widget", "version"}, Wid),
0 0
- erlang 下好用的json 库 ej
- Erlang的Json库
- Erlang:使用Erlang Json库
- json erlang 处理
- Erlang: Scalaris 以及内建的 json parser 支持
- Erlang 聊天室程序(三) 数据交换格式---json的decode
- Erlang 聊天室程序(四) 数据交换格式---json的encode
- erlang 用rfc4627 带中文的json格式
- Erlang,优秀的Erlang
- erlang的日志库 A logging framework for Erlang/OTP
- 如何打开EJ和POSLog
- [Erlang]如何在Erlang中将对list进行json编码?
- centos编译erlang需要的一些库
- [Erlang]好用的NIF外部库
- erlang json转换工具jsx(未学习)
- [Erlang]Erlang的干将莫邪:Rebar的使用
- Erlang核心库大全——我读阿姆斯特朗的Erlang书
- [Erlang 0008] Erlang的Match specifications
- mysql忘记root密码解决办法
- 梳理hibernate篇-运行使用机制
- Ubuntu提示boot空间不足
- Unity3d碰撞检测中碰撞器与触发器的区别
- Mysql+IIS+三层架构创建网站遇到的过程总结
- erlang 下好用的json 库 ej
- C#一个简单的委托示列
- mongodb复制集搭建
- 排序中的两种非比较排序—计数和基数排序
- 梳理hibernate篇-原理及缓存机制
- iOS 应用发布流程
- Debian8.5安装编译GCC6.1.0笔记
- 卸载系统应用&动画气泡特效&创建守护服务&进程管理(ActivtyManager&提供批量操作)&桌面小控件AppWidget
- SICP 习题2.9 区间宽度