Read all about it at json.org!
You can decode and encode JSON from Emacs Lisp using json.el. It is part of GNU Emacs since 23.1 (2008).
Some highlighting support for editing json files is provided by json-mode.
If you have python or jsonlint installed, Flycheck can report errors in json-mode, just do:
(add-hook 'json-mode-hook #'flycheck-mode)
(jsonlint can give schema-based validation, but the python-based validator is handy too for simply catching missing commas etc.)
https://github.com/gongo/json-reformat mentions that Emacs 24.4+ has built-in
As https://irreal.org/blog/?p=354 wrote, you can also simply
C-u M-| python -m json.tool
to reformat a buffer containing JSON.