+ 1 для Джоша json-mode - у меня хорошо работает. Я добавил
(defun beautify-json ()
(interactive)
(let ((b (if mark-active (min (point) (mark)) (point-min)))
(e (if mark-active (max (point) (mark)) (point-max))))
(shell-command-on-region b e
"python -m json.tool" (current-buffer) t)))
и
(define-key json-mode-map (kbd "C-c C-f") 'beautify-json)
в json-mode.el для упрощения вызова команд оболочки.
ОБНОВЛЕНИЕ: Для тех из вас, кто хочет / хочет сделать это с помощью Unicode, см. Мой вопрос здесь . Результат скорее, чем использование:
python -m json.tool
вы захотите использовать
python -c 'import sys,json; data=json.loads(sys.stdin.read()); print json.dumps(data,sort_keys=True,indent=4).decode("unicode_escape").encode("utf8","replace")'
Это как украшает JSON, так и сохраняет исходный контент Unicode.