mochijson2 を使用して一部のデータをエンコードしています。しかし、リストとしての文字列では奇妙な動作をすることがわかりました。
例:
mochijson2:encode("foo").
[91,"102",44,"111",44,"111",93]
"102"、"111"、"111" は、文字列としてエンコードされた $f、$o、$o です。44 はカンマ、91 と 93 は角括弧です。
もちろん、これをどこかに出力すると、文字列「[102,111,111]」が得られますが、これは明らかに私が何をしているのかではありません。
私が試したら
mochijson2:encode(<<"foo">>).
[34,<<"foo">>,34]
だから私は再び2つの二重引用符とバイナリ部分のリストを取得し、その中でlist_to_binary/1でバイナリに変換できます
ここに問題があります - なぜそれほど矛盾しているのか。json配列としてエンコードする必要があるerlangリストとjson文字列としてエンコードする必要があるerlang文字列を区別する問題があることは理解していますが、少なくともバイナリを渡すとバイナリを出力できますか?
そして 2 番目の質問: mochijson がすべて適切に出力するように見えます (特殊なタプルを使用して配列 {array, ...} を指定するため)。
mochijson:encode(<<"foo">>).
"\"ふー\""
mochijson2 と mochijson の違いは何ですか? パフォーマンス?ユニコード扱い?他に何か?
ありがとう