An Erlang application for consuming, producing, and manipulating JSON, inspired by yajl.
jsx is an Erlang library for parsing, generating, and manipulating JSON data. It converts between UTF-8 encoded JSON binaries and Erlang terms like maps, lists, and atoms, while offering features like streaming, formatting, and validation. The library is designed to handle real-world JSON with pragmatic extensions while adhering closely to the JSON specification.
Erlang developers who need to work with JSON data in their applications, whether for APIs, configuration, or data interchange. It's suitable for projects requiring robust JSON parsing, encoding, or custom processing.
Developers choose jsx for its comprehensive feature set, including streaming support, flexible term mapping, and extensible callback system. Its pragmatic defaults and strict mode options provide a balance between convenience and specification compliance.
an erlang application for consuming, producing and manipulating json. inspired by yajl
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports conversion between JSON and various Erlang types like maps, lists, and atoms with configurable options such as 'labels' and 'return_maps', enabling tailored data handling.
Handles incomplete input with the 'stream' option, allowing parsing of large or real-time JSON data without full memory consumption, as detailed in the incomplete input section.
By default, allows real-world JSON variations like comments, trailing commas, and single quotes, with strict mode available for spec adherence, making it practical for messy data.
Provides 'encoder/3', 'decoder/3', and 'parser/3' for user-defined semantic analysis via callback modules, enabling advanced, tailored JSON processing workflows.
Includes 'is_json/1,2' and 'is_term/1,2' functions to validate JSON texts and Erlang terms, offering robust data integrity checks with configurable options.
Enables extensions like comments and single quotes by default, which can cause interoperability issues or security concerns if not explicitly disabled with strict mode.
The callback module interface and numerous options, such as 'dirty_strings' and 'uescape', add unnecessary complexity for straightforward JSON tasks, increasing the learning curve.
Lacks built-in support for JSON Schema validation or querying languages, focusing only on core parsing and encoding, which may require additional libraries for advanced use cases.
Raises 'badarg' exceptions for invalid input, providing minimal error details that can hinder debugging and troubleshooting in production environments.