1> erlang 转换为 json
1> mochijson:encode(1) 整数
1> .
"1"
2> mochijson:encode(true) true
2> .
"true"
3> mochijson:encode(false) flse
3> .
"false"
4> mochijson:encode(null) null
4> .
"null"
5> mochijson:encode(1.1) 浮点数
5> .
"1.1"
6> mochijson:encode(01.10)
6> .
"1.1"
7> mochijson:encode(sdd) atom
7> .
"\"sdd\""
8> mochijson:encode("string") list . 是 "string", 不是[1]
8> .
"\"string\""
9> mochijson:encode([list])
9> .
** exception exit: {json_encode,{bad_char,list}}
in function mochijson:json_encode_string_unicode_1/1
in call from mochijson:json_encode_string_unicode/1
10> is_list([list]).
true
11> mochijson:encode(<<binary>>)
11> .
** exception error: bad argument
12> mochijson:encode(<<"binary">>)
12> .
"\"binary\""
13> mochijson:encode({array,[list]}) list
13> .
[91,"\"list\"",93]
14> mochijson:encode({array,[list,list2]})
14> .
[91,"\"list\"",44,"\"list2\"",93]
15> mochijson:encode({struct,[list,list2]})
15> .
** exception error: no function clause matching mochijson:'-json_encode_proplist/2-fun-0-'(list,"{",{encoder,unicode,null})
in function lists:foldl/3
in call from mochijson:json_encode_proplist/2
16> mochijson:encode({struct,["list","list2"]})
16> .
** exception error: no function clause matching mochijson:'-json_encode_proplist/2-fun-0-'("list","{",{encoder,unicode,null})
in function lists:foldl/3
in call from mochijson:json_encode_proplist/2
17> mochijson:encode({struct,[{list,"list"},{"list2"}]}) [{k,v},{k1,v1}]
17> .
** exception error: no function clause matching mochijson:'-json_encode_proplist/2-fun-0-'({"list2"},
[44,"\"list\"",58,"\"list\"",123],
{encoder,unicode,null})
in function lists:foldl/3
in call from mochijson:json_encode_proplist/2
18> mochijson:encode({struct,[{list,"list"},{"list2",list}]})
18> .
[123,"\"list\"",58,"\"list\"",44,"\"list2\"",58,"\"list\"",
125]
19>
mochijson.erl代码片段
108
109 json_encode(true, _State) ->
110 "true";
111 json_encode(false, _State) ->
112 "false";
113 json_encode(null, _State) ->
114 "null";
115 json_encode(I, _State) when is_integer(I) ->
116 integer_to_list(I);
117 json_encode(F, _State) when is_float(F) ->
118 mochinum:digits(F);
119 json_encode(L, State) when is_list(L); is_binary(L); is_atom(L) ->
120 json_encode_string(L, State);
121 json_encode({array, Props}, State) when is_list(Props) ->
122 json_encode_array(Props, State);
123 json_encode({struct, Props}, State) when is_list(Props) ->
124 json_encode_proplist(Props, State);
125 json_encode(Bad, #encoder{handler=null}) ->
126 exit({json_encode, {bad_term, Bad}});
127 json_encode(Bad, State=#encoder{handler=Handler}) ->
128 json_encode(Handler(Bad), State).
129
decode:
19>
19> v(18)
19> .
[123,"\"list\"",58,"\"list\"",44,"\"list2\"",58,"\"list\"",
125]
20> mochijson:decode(v(18))
20> .
{struct,[{"list","list"},{"list2","list"}]}
21> mochijson:decode(v(14))
21> .
{array,["list","list2"]}
22> mochijson:decode(v(13))
22> .
{array,["list"]}
23> mochijson:decode(v(12))
23> .
"binary"
24> mochijson:decode(v(8))
24> .
"string"
25> mochijson:decode(v(7))
25> .
"sdd"
26> mochijson:decode(v(6))
26> .
1.1
------------------------------------------------------------------------------------------
(trends@jason-lxw)2> mochijson:decode("{\"result\":\"200\"}").
{struct,[{"result","200"}]}
(trends@jason-lxw)1> mochijson:decode({"result":{"200":"ss"}}).
* 2: illegal expression
(trends@jason-lxw)2> mochijson:decode("{\"result\":{\"200\":\"ss\"}}").
{struct,[{"result",{struct,[{"200","ss"}]}}]}
(trends@jason-lxw)3> mochijson:decode("{ \"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\": \"aaaa\" }").
{struct,[{"firstName","Brett"},
{"lastName","McLaughlin"},
{"email","aaaa"}]}
in call from mochijson:json_decode/2
(trends@jason-lxw)20> mochijson:decode("{\"pel\":\"sdf\"}")
(trends@jason-lxw)20> .
{struct,[{"pel","sdf"}]}
(trends@jason-lxw)21> mochijson:decode("{\"pel\":[\"sdf\"]}")
(trends@jason-lxw)21> .
{struct,[{"pel",{array,["sdf"]}}]}
(trends@jason-lxw)22> mochijson:decode("{\"pel\":[\"sdf\", \"ss\"]}")
(trends@jason-lxw)22> .
{struct,[{"pel",{array,["sdf","ss"]}}]}
(trends@jason-lxw)23> mochijson:decode("{\"pel\":[{ \"firstName\":\"Brett\", \"lastName\":\"McLaughlin\", \"email\":\"aaaa\" }"]}")
(trends@jason-lxw)23> .
(trends@jason-lxw)23> ".
* 1: syntax error before: ']'
(trends@jason-lxw)23> mochijson:decode("{\"pel\":[\"sdf\",{ \"firstName\":\"Brett\", \"lastName\":\"McLaughlin\", \"email\":\"aaaa\" }"}]}")
(trends@jason-lxw)23> .
(trends@jason-lxw)23> "/.
* 1: syntax error before: '}'
(trends@jason-lxw)23> mochijson:decode("{\"pel\":[\"sdf\", {}]}")
(trends@jason-lxw)23> .
{struct,[{"pel",{array,["sdf",{struct,[]}]}}]}
(trends@jason-lxw)24> mochijson:decode("{\"pel\":[\"sdf\", {\"sdf\"}]}")
(trends@jason-lxw)24> .
** exception error: no match of right hand side value {end_object,"]}",{decoder,utf8,null,1,23,key}}
in function mochijson:decode_object/3
in call from mochijson:decode_array/3
in call from mochijson:decode_object/3
in call from mochijson:json_decode/2
(trends@jason-lxw)25> mochijson:decode("{\"pel\":[\"sdf\", {\"sdf\":\"sdf\"}]}")
(trends@jason-lxw)25> .
{struct,[{"pel",{array,["sdf",{struct,[{"sdf","sdf"}]}]}}]}
(trends@jason-lxw)26> mochijson:decode("{ \"firstName\":\"Brett\", \"lastName\":\"McLaughlin\", \"email\":\"aaaa\" }").
{struct,[{"firstName","Brett"},
{"lastName","McLaughlin"},
{"email","aaaa"}]}
(trends@jason-lxw)27> mochijson:decode("{\"pel\":[\"sdf\", {\"sdf\":\"sdf\"},"{ \"firstName\":\"Brett\", \"lastName\":\"McLaughlin\", \"email\":\"aaaa\" }"]}")
(trends@jason-lxw)27> .
(trends@jason-lxw)27> ".
* 1: syntax error before: '{'
(trends@jason-lxw)27> mochijson:decode("{\"pel\":[\"sdf\", {\"sdf\":\"sdf\"}]}") (trends@jason-lxw)27> .
{struct,[{"pel",{array,["sdf",{struct,[{"sdf","sdf"}]}]}}]}
(trends@jason-lxw)28> mochijson:decode("{\"pel\":[\"sdf\", {\"sdf\":\"sdf\"}, { \"firstName\":\"Brett\", \"lastName\":\"McLaughlin\", \"email\":\"aaaa\" }]}")
(trends@jason-lxw)28> .
{struct,[{"pel",
{array,["sdf",
{struct,[{"sdf","sdf"}]},
{struct,[{"firstName","Brett"},
{"lastName","McLaughlin"},
{"email","aaaa"}]}]}}]}
(trends@jason-lxw)29>
分享到:
相关推荐
ej_merge 该模块为JSON补丁(RFC 6902)和JSON合并补丁(RFC 7396)规范提供了纯Erlang支持。... ... ej_merge:mergepatch(mochijson2:decode(A),mochijson2:decode(B))。 参考 相关工作:
支持以下常见的Erlang数据结构: list() dict() gb_trees() proplist() {struct, proplist()} (通常在mochijson2中使用) {proplist()} ( ) map() Erlang 17+ 密钥仅允许使用以下数据类型,并且如果发生任何类型...
erljson_bench 用于比较各种JSON编码/解码库的脚本图书馆比较ejson 瞬间json jsonx jsx mochijson2要求要执行这些基准测试,路径上必须有一个有效的erlang(erl和escript)。建立和运行要下载依赖项并进行编译: ...
DAB变换器双向运行模型:单重移相控制策略与切换过程电压幅度研究,DAB变器双向运行模型。 单重移相控制 不少伙伴咨询DAB怎么改反向运行。 特意搭建了这个双向运行的DAB模型。 可实现正反向的不间断运行,是一个集成在一起的模型。 如展示图所示,图中0.3s处改变了功率传输的方向。 如果想研究切过程电压幅度的问题,可看我另一个关于DAB控制的方法 ~ ,DAB变换器; 双向运行模型; 移相控制; 功率传输方向切换; 电压幅度。,DAB变换器双向运行模型:单重移相控制与电压幅度切换过程研究
掼蛋平台使用说明书1006 (1).pdf
"密歇根大学燃料电池系统Matlab Simulink模型:电堆、压缩机拟合及辅助模块的全面构建与解析",密歇根大学质子交膜燃料电池系统模型,matlab simulink模型 包含: 电堆模型。 压缩机拟合模型。 理想加湿器、冷却器模型。 阳极、阴极流道模型。 进排气总管模型。 包含模型1:1搭建过程文件。 每一个模块都有搭建过程,都有说明文件,中文wrod版。 附赠参考文。 ,关键词: 密歇根大学; 质子交换膜燃料电池系统模型; MATLAB Simulink模型; 电堆模型; 压缩机拟合模型; 理想加湿器、冷却器模型; 阳极、阴极流道模型; 进排气总管模型; 搭建过程文件; 说明文件; 附赠参考文。,"密歇根大学燃料电池系统模型:Matlab Simulink电堆与辅助组件模型集"
免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1、文件内容:perl-DBD-MySQL-4.023-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-DBD-MySQL-4.023-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
ollama基础知识简介.md
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
YD-T 4961.3-2024 隐私计算 跨平台互联互通 第3部分:互联协议.pdf
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:29页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借Spring Boot框架搭建后台。前台采用支持HTML5的VUE框架。用MySQL存储数据,可靠性强。 能学到什么: 使用Spring Boot搭建后台。VUE框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
eLab
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
CST超表面仿真技术在近场成像与全息案例应用中的实践与探索,cst超表面仿真 近场成像与全息案例 ,核心关键词: 1. CST超表面仿真; 2. 近场成像; 3. 全息案例。,CST超表面仿真与近场成像全息案例
1、文件内容:perl-Module-Runtime-0.013-4.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-Module-Runtime-0.013-4.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于Matlab的程序化设计与优化:交直流混合微网系统的随机性建模与稳定运行策略研究,交直流混合微网 程序matlab 采用拉丁超立方抽样和多场景缩减,考虑风光等随机性建模,利用粒子群算法,计算得到三个微网的优化程序运行稳定,有详细资料。 ,交直流混合微网; MATLAB程序; 拉丁超立方抽样; 多场景缩减; 风光随机性建模; 粒子群算法; 微网优化运行稳定; 详细资料,Matlab实现:交直流混合微网优化程序稳定运行研究