mochijson2或mochijson

前端之家收集整理的这篇文章主要介绍了mochijson2或mochijson前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用mochijson2编码一些数据.
但我发现它在字符串上表现得很奇怪.

例:

mochijson2:encode(“foo”).

[91,”102″,44,”111″,93]

其中“102”,“111”,“111”是$f,$o,$o编码为字符串
44是逗号,91和93是方形的.

当然,如果我输出这个地方,我会得到字符串“[102,111,111]”,这显然不是我的意思.

如果我试试

mochijson2:encode(<<“foo”>>).

[34,<<“foo”>>,34]

所以我再次获得两个双引号和二进制部分的列表,其中可以通过list_to_binary / 1转换为二进制

这是一个问题 – 为什么它如此不一致.我明白有一个问题是distingushing erlang列表应该被编码为json数组和erlang字符串,它应该被编码为json字符串,但至少它可以输出二进制当我传递它二进制文件

第二个问题:
看起来像mochijson输出的一切都很好(因为它使用特殊的元组来指定数组{array,…})

mochijson:encode(<<“foo”>>).
“\”foo\””

mochijson2和mochijson有什么区别?性能? Unicode处理?还要别的吗?

谢谢

解决方法

我的猜测是,mochijson的决定是它将二进制文件视为字符串,并将整数列表视为整数列表. (Un?)幸运的是,Erlang中的字符串实际上是一个整数列表.

结果你的“foo”,或者换句话说,你的[102,111]被翻译成代表“[102,111]”的文本.在第二种情况下,您的<<“foo”>>字符串变成“foo”

关于第二个问题,mochijson似乎总是返回一个字符串,而mochijson2返回一个iodata类型. Iodata基本上是字符串,二进制文件和iodatas(实际上是iolists)的递归列表.如果您只打算通过“线路”发送结果,那么将它们嵌套在列表中比将它们转换为扁平字符串更有效.

猜你在找的JavaScript相关文章