Я кодирую некоторые данные, используя mochijson2.
Но я обнаружил, что он ведет себя странно в строках в виде списков.
Пример:
mochijson2: закодировать ( "Foo")
.
[91, "102", 44, "111", 44, "111", 93]
Где "102", "111", "111" - это $ f, $ o, $ o, закодированные как строки
44 - запятые, 91 и 93 - квадратные скобки.
Конечно, если я выведу это куда-нибудь, я получу строку "[102,111,111]", которая явно не та, что я.
Если я попробую
mochijson2: закодировать (<< "Foo" >>)
.
[34, << "Foo" >>, 34]
Итак, я снова получаю список из двух двойных кавычек и двоичной части, которые можно преобразовать в двоичную с помощью list_to_binary / 1
Вот вопрос - почему это так противоречиво. Я понимаю, что существует проблема с удалением списка erlang, который должен быть закодирован как массив json, и строки erlang, которая должна быть закодирована как строка json, но, по крайней мере, может ли он выводить двоичный файл, когда я передаю его в двоичном виде?
И второй вопрос:
Похоже, что mochijson выводит все красиво (потому что он использует специальный кортеж для обозначения массивов {array, ...})
mochijson: закодировать (<< "Foo" >>)
.
"\" Foo \ ""
В чем разница между mochijson2 и mochijson? Спектакль? Обработка Юникода? Что-нибудь еще?
Спасибо