https://github.com/simplejson/simplejson
simplejson is a simple, fast, extensible JSON encoder/decoder for Python
https://github.com/simplejson/simplejson
json json-parser json-serializer python python2 python3
Last synced: 21 days ago
JSON representation
simplejson is a simple, fast, extensible JSON encoder/decoder for Python
- Host: GitHub
- URL: https://github.com/simplejson/simplejson
- Owner: simplejson
- License: other
- Created: 2011-02-06T05:47:45.000Z (over 15 years ago)
- Default Branch: main
- Last Pushed: 2026-04-13T16:13:19.000Z (30 days ago)
- Last Synced: 2026-04-13T20:30:29.294Z (30 days ago)
- Topics: json, json-parser, json-serializer, python, python2, python3
- Language: Python
- Homepage: https://simplejson.readthedocs.io/
- Size: 1.37 MB
- Stars: 1,708
- Watchers: 58
- Forks: 356
- Open Issues: 22
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.txt
- License: LICENSE.txt
Awesome Lists containing this project
- fucking-awesome-python-cn - simplejson
- awesome-json - simplejson - A simple, fast, extensible encoder/decoder (Libraries)
- awesome-list - simplejson - A simple, fast, extensible JSON encoder/decoder for Python. (Data Format & I/O / For Python)
- best-of-python - GitHub - 10% open · ⏱️ 24.09.2025): (Data Serialization)
- awesome - simplejson
- awesome-python-cn - simplejson
- awesome-github-star - simplejson
README
simplejson
----------
simplejson is a simple, fast, complete, correct and extensible
JSON encoder and decoder for Python 3.8+
with legacy support for Python 2.7. It is pure Python code
with no dependencies, but includes an optional C extension
for a serious speed boost.
The latest documentation for simplejson can be read online here:
https://simplejson.readthedocs.io/
simplejson is the externally maintained development version of the
json library included with Python (since 2.6). This version is tested
with Python 3.14 (including free-threaded builds) and maintains
backwards compatibility with Python 3.8+. A legacy Python 2.7 wheel
is also published.
The encoder can be specialized to provide serialization in any kind of
situation, without any special support by the objects to be serialized
(somewhat like pickle). This is best done with the ``default`` kwarg
to dumps.
The decoder can handle incoming JSON strings of any specified encoding
(UTF-8 by default). It can also be specialized to post-process JSON
objects with the ``object_hook`` or ``object_pairs_hook`` kwargs. This
is particularly useful for implementing protocols such as JSON-RPC
that have a richer type system than JSON itself.
For those of you that have legacy systems to maintain, there is a
very old fork of simplejson in the `python2.2`_ branch that supports
Python 2.2. This is based on a very old version of simplejson,
is not maintained, and should only be used as a last resort.
.. _python2.2: https://github.com/simplejson/simplejson/tree/python2.2
RawJSON
~~~~~~~
``RawJSON`` allows embedding pre-encoded JSON strings into output without
re-encoding them.
This can be useful in advanced cases where JSON content is already
serialized and re-encoding would be unnecessary.
Example usage::
from simplejson import dumps, RawJSON
payload = {
"status": "ok",
"data": RawJSON('{"a": 1, "b": 2}')
}
print(dumps(payload))
# Output: {"status": "ok", "data": {"a": 1, "b": 2}}
**Caveat:** ``RawJSON`` should be used with care. It bypasses normal
serialization and validation, and is not recommended for general use
unless the embedded JSON content is fully trusted.