Библиотеки Erlang JSON: выполнение сериализации?

Взгляните на то, как работы doxygen, полный исходный код доступен, и это основано на гибком проводе.

кандидат введения в заблуждение А ЗОЛОТО , который является свободным инструментарием синтаксического анализатора на базе Windows явно для создания переводчиков. Их список поддерживаемые языки относятся к языкам, на которых может реализовать синтаксические анализаторы, не список поддерживаемых грамматик синтаксического анализа.

у Них только есть грамматики для C и C#, никакого C++.

11
задан Greg Campbell 30 October 2009 в 20:59
поделиться

3 ответа

Я использую rfc4627.erl (я наткнулся на него, и производительность не была проблемой)

Однако я ожидаю, что разные собственные библиотеки erlang будут выполнять так же хорошо. Они делятся идеями (как видно из комментариев кода ). AFAIK mochijson и rfc4627 используют один и тот же исходный формат erlang.

eep018 - это C, и поскольку он пытается реализовать ... hrm ... eep-0018 , собственный кодировщик term_to_json , который может быть включен в будущую версию Erlang. Никогда не пробовал и, кажется, активно не поддерживается.

Моя последняя рекомендация - использовать mochijson (2) от mochiweb (2). Это де-факто стандарт, который активно поддерживается, в частности, CouchDB и Facebook.

9
ответ дан 3 December 2019 в 09:41
поделиться

В последнее время я использую jsonerl . Он основан на mochijson2 и намного проще и интуитивно понятен в использовании.

2
ответ дан 3 December 2019 в 09:41
поделиться

Надеюсь, этот ответ не будет воспринят плохо:

Я тоже изучил синтаксический анализ и сериализацию JSON для проекта. Мне приходилось обрабатывать много данных параллельно, так что Erlang звучал великолепно! Но многое из этого касалось строк в форме данных JSON, и здесь все пошло не так.

Как вы, наверное, знаете, строки в Erlang - это полноценные списки символов. В отличие от строк в большинстве языков (char - это «примерно» байт), каждый символ в Erlang представлен целым 32-битным целым числом! Итак, ваши строки уже довольно большие.

Поскольку это список, доступ к заданному элементу строки - O (N) вместо O (1), как вы ожидали в массиве Chars. И поскольку строки в Erlang неизменяемы, простая конкатенация может оказаться очень медленным процессом. В конце концов я понял, что просто пытался использовать неправильный язык.

По всей вероятности, вы уже знаете все эти вещи, но я счел полезным оставить это в качестве ответа для других, которые могут прийти на ваш пост в будущем.

-2
ответ дан 3 December 2019 в 09:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: