Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用字符串将Erlang映射编码为JSON以供Javascript解析?_Javascript_Json_Erlang_Jiffy - Fatal编程技术网

用字符串将Erlang映射编码为JSON以供Javascript解析?

用字符串将Erlang映射编码为JSON以供Javascript解析?,javascript,json,erlang,jiffy,Javascript,Json,Erlang,Jiffy,我正试着拍摄一张像这样的Erlang地图 #{"breakfast" => "leftovers"} 并将其编码为JSON映射 例如,我尝试用jiffy转换列表 (tunnel@127.0.0.1)27> binary_to_list(jiffy:encode(["alpha", "beta"] )). "[[97,108,112,104,97],[98,101,116,97]]" 但我不确定如何将其转换为JSON对象 当我尝试转换地图时,我得到“无效的成员密钥”” 我尝试了列表

我正试着拍摄一张像这样的Erlang地图

#{"breakfast" => "leftovers"}
并将其编码为JSON映射

例如,我尝试用jiffy转换列表

(tunnel@127.0.0.1)27> binary_to_list(jiffy:encode(["alpha", "beta"] )).
"[[97,108,112,104,97],[98,101,116,97]]"
但我不确定如何将其转换为JSON对象

当我尝试转换地图时,我得到“
无效的成员密钥”

我尝试了列表的漂亮格式化程序,得到了换行符

(tunnel@127.0.0.1)31> binary_to_list(jiffy:encode(["alpha", "beta"], [pretty] )).
"[\n  [\n    97,\n    108,\n    112,\n    104,\n    97\n  ],\n  [\n    98,\n    101,\n    116,\n    97\n  ]\n]"
为什么这不起作用?json_对象是

-type json_object() :: {[{json_string(),json_value()}]}
                        | #{json_string() => json_value()}.

所以我希望地图转换能起作用。我尝试过搜索并找到了读取JSON的示例,但没有找到将Erlang转换为可读JSON的工作示例。

问题是,在Erlang中,字符串“hello”只是一个整数列表。将Erlang映射编码为JSON的库将字符串解释为JSON列表,这就是在输出中获得整数列表的原因

为了获得JSON字符串,您需要使用Erlang二进制文件作为映射中的值:

Food = #{<<"breakfast">> => <<"leftovers">>},
jiffy:encode(Food).
%%= <<"{ \"breakfast\" : \"leftovers\" }">>
Food=#{=>},
杰菲:编码(食物)。
%%= 
jiffy
是一致的,因此它还将JSON字符串解码为Erlang二进制文件,在使用
jiffy:decode/1
时需要考虑这一点

Food = #{<<"breakfast">> => <<"leftovers">>},
jiffy:encode(Food).
%%= <<"{ \"breakfast\" : \"leftovers\" }">>