質問

私はmochijson2を使用して、いくつかのデータを符号化しています。 しかし、私は、それはリストのように文字列の上に奇妙な振る舞いことがわかっています。

例:

  

mochijson2:エンコード( "FOO")

     

91、 "102"、44、 "111"、44、 "111"、93]

"102"、 "111"、 "111" の文字列として符号化さ$ O、、$、O $ Fであります 44はコンマであり、91及び93は、正方形braketsである。

もちろん

I出力であれば、私は私が何を。

ということは明らかではない文字列「[102111111]」を得るでしょう、このどこかに

私がしようとした場合、

  

mochijson2:エンコード(<< "FOO" >>)

     

34、<< "FOO" >>、34

だから私もう一度、私はlist_to_binary / 1

でバイナリに変換することができた内の2つのダブルクォートとバイナリ部分のリストを取得します ここで質問です - なぜそれはとても矛盾しています。私はJSON配列とJSON文字列としてエンコードされなければならないのerlang文字列としてエンコードされなければならない問題distingushing Erlangのリストがあることを理解し、しかし、少なくともそれは私が、バイナリを出力バイナリを渡すことができますか?

そして2つ目の質問: (それは指名アレイに特殊タプルを使用原因{アレイ、...})mochijson出力すべてのいいように見える

  

mochijson:エンコード(<< "foo" という>>)
。   "\" FOO \ ""

mochijson2とmochijsonの違いは何ですか?パフォーマンス? Unicodeの扱い?他に何か?

おかげ

役に立ちましたか?

解決

私の推測では、mochijsonにおける決定は、それは文字列としてバイナリを扱うことであるということであり、それは整数のリストとして整数のリストを扱います。 (アン?)幸いアーラン内の文字列は、実際には整数のリストです。

その結果、あなたの「foo」という、言い換えれば、あなたの[102111111]「[102111111]」を表すテキストに変換されます。後者の場合にはご<< "foo" という文字列が>>

"foo" をとなり

は2番目の質問については、mochijsonは、常に文字列を返すように思わmochijson2戻り、一方、<のhref =「http://www.erlang.org/doc/man/erlang.html#iolist_definition」のrel =「noreferrer」 > iodata のタイプ。 Iodataは基本的には、文字列、バイナリと(実際のiolists中)iodatasの再帰的なリストです。あなただけの「ワイヤを通じて」の結果を送信する場合、それは平らな文字列に変換、それらをよりリストにちょうど巣彼らに、より効率的である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top