Skip to content

Instantly share code, notes, and snippets.

@chales
Last active July 17, 2024 17:34
Show Gist options
  • Save chales/510c5bed59a32ed0cb55 to your computer and use it in GitHub Desktop.
Save chales/510c5bed59a32ed0cb55 to your computer and use it in GitHub Desktop.
Make JSON legible with BBEdit
2016/03/15
Tested with BBEdit 11.5 / OS X 10.11.3 / Python 2.7.10
http://grokin.gs/blog/elegant-json-pretty-print-for-bbedit/
Place the script (or a link to this script) in the ~/Library/Application Support/BBEdit/Text Filters directory
Restart BBEdit.
The new filter should be under: "Test > Apply Text Filter > bbedit-pretty-json"
#!/bin/bash
python -c "import sys, json; print json.dumps(json.load(sys.stdin), indent=2)"
@michaldobisek
Copy link

If you have jq installed (which could be simply done via homebrew brew install jq), then the Format JSON filter could be as simple as

#!/bin/bash
jq .

@hotsupport
Copy link

Environment:
macOS Sonoma 14.5 (23F79)
BBEdit version 15.0.3 (15A102, 64-bit Intel)

Using the current version some UTF-8 characters are returned encoded:
in: "forsøg"
out: "fors\u00f8g"

I have verified, that the BBEdit document is in fact using UTF-8 encoding. Any clues?

@hotsupport
Copy link

hotsupport commented Jul 17, 2024

Environment: macOS Sonoma 14.5 (23F79) BBEdit version 15.0.3 (15A102, 64-bit Intel)

Using the current version some UTF-8 characters are returned encoded: in: "forsøg" out: "fors\u00f8g"

I have verified, that the BBEdit document is in fact using UTF-8 encoding. Any clues?

Solved: add ", ensure_ascii=False" to the json.dumps command:
#!/bin/bash
python3 -c "import sys, json; print (json.dumps(json.load(sys.stdin), indent=2, ensure_ascii=False))"

@levigroker
Copy link

I concur with @michaldobisek in that jq is a much more elegant way to go, especially since python is no longer installed on macOS with the developer tools.

I've updated the gist I maintain with this approach: https://gist.github.com/levigroker/3777091

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment