--- id: json-encoder version: "0.4.4" license: unclear license_treatment: unclear maintenance: abandoned --- # json-encoder — json encoder uses singledispatch pattern instead of JSONEncoder class overwrites License: unclear · Maintenance: abandoned · Downloads: 82.6K/mo ## What it is and what it does json-encoder is a JSON serialization library that uses Python's singledispatch pattern to register type-specific serializers instead of requiring JSONEncoder subclassing. It eliminates the need to pass a custom encoder class to every json.dumps() call and provides built-in handlers for common types like datetime, UUID, and Decimal. The package is not tied to a specific JSON implementation—it can work with the standard library json module, simplejson, ujson, or others. The library also converts JSON float numbers to Decimal objects during parsing to avoid floating-point precision issues. Developers can register custom serializers for their own types using a simple decorator pattern. However, the package has been abandoned since 2016-09-16 and receives no maintenance, making it a legacy tool that may not work reliably with current Python versions or modern JSON libraries. Use it for: - Serialize datetime, date, time, UUID, and Decimal objects to JSON without writing custom encoder classes. - Register custom serializers for domain-specific types using a decorator pattern instead of subclassing JSONEncoder. - Switch between json, simplejson, or ujson implementations globally or per-call without changing serialization logic. - Prevent floating-point precision loss by parsing JSON numbers as Decimal objects. - Avoid repeating cls=MyEncoder in every json.dumps() call across a codebase. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides JSON serialization with singledispatch-based type handlers instead of JSONEncoder subclassing, with built-in support for time, date, datetime, UUID, and Decimal types. No. The package is abandoned (last release 2016-09-16) with no maintenance signal, an unclear license, and compatibility only documented through Python 3.5. Modern Python versions and current JSON libraries may not work with it. For new projects, use a maintained alternative or the standard library's JSONEncoder with custom handlers. For legacy codebases already using it, consider migrating. ## Install pip install json-encoder uv add json-encoder poetry add json-encoder ## Installing json-encoder Before you install: Low install friction with only two runtime dependencies (six and singledispatch). However, the package is abandoned—last release was 2016-09-16, with no maintenance activity since. License in practice: License status is unclear; no SPDX identifier or raw license text is available in the package metadata. Verify the actual license terms before use in proprietary or copyleft-sensitive projects. Quickstart: from json_encoder import json result = json.dumps(data) # Register custom type handler: from json_encoder.encoder import json_encoder @json_encoder.register(MyType) def encode_mytype(obj): return str(obj) singledispatch is a runtime dependency; for Python < 3.4, singledispatch >= 3.4.0.3 must be installed separately. Verify before relying: - Whether the package is compatible with modern Python versions beyond 3.5 (last tested version in classifiers). - Current state of the repository and whether it has been archived or deleted. - Whether the unclear license is permissive or restrictive, and what the actual license text is. ## Package facts - License: not declared (unclear) - Python support: unspecified - Install friction: low - Maintenance: abandoned - Downloads: 82.6K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags json serialization with singledispatch, custom json encoder without subclassing, json datetime uuid decimal serialization, pluggable json type handlers, json encoder alternative to cls parameter, json-serialization, abandoned [View on SkillFed](https://skillfed.io/packages/json-encoder) · [View on PyPI](https://pypi.org/project/json-encoder/)