JSON Editor

Developer: Vlad Badea

Current Version: 1.17

Last Updated: 9 days ago

Download Size: 5.6 MB - Download

Description:

JSON Editor is a must have editor for JSON data. In a clean, uncluttered and user-friendly interface, it allows you to quickly create, visualize, modify, validate, format and save your JSON documents.
Along with the included HTTP Client, is a powerful tool to inspect and debug your API endpoints.

KEY FEATURE - JSON EDITOR

• Edit JSON documents both in tree (outline) and text modes.
• Multiple selection in tree mode. You can select multiple siblings and perform standard operations (i.e. copy, delete, drag and drop etc) on them.
• Syntax coloring, auto-indentation and line numbers.
• Validation of the JSON document.
• Highlight of the validation errors, along with a description of them.
• Make the JSON document human readable or compact, even if it is not entirely valid.
• Auto-detect if the document is human readable or compact, and preserve this format even if you edit in tree mode.
• Cut, copy, paste, delete and reorder the tree items.
• Copy and paste for raw JSON strings.
• Undo and redo.
• Easily embed selected items in Array or Object (dictionary).
• Full support for Find and Replace, both in tree and raw modes.
• In tree mode you can choose where the Find (and Replace) will take place: in "Key" column or "Value" column or both. The option which controls which columns will be searched is available by clicking the "search" image in the find bar (Command + F) and then accessing the options from "Find In" submenu.
• Import and export property list (.plist) files.
• Support for pasting plist data, either from raw XML or from Xcode.
• Copy JSON tree nodes as Swift objects so you can use them in Xcode.
• Copy JSON tree nodes as Objective-C objects (both modern and classic syntax) so you can use them in Xcode.
• Copy JSON tree nodes as JSON Path strings.
• Copy JSON tree nodes as XML plist so you can paste them in Xcode or other text editor.
• "Add" and "Remove" buttons on the tree row which is tracked by mouse.
• Ability to change the default font (both font family and size). This font applies both to the JSON tree and to the raw editor.
• Ability to increase and decrease font size for better readability.
• Full screen support.
• Versions support.
• Services support.
• Detect when the JSON document is changed by another application. In Preferences (Command + ,) -> "General" tab, you have the ability to customize what to do when this happens: "Keep JSON Editor's version" or "Ask how to resolve" or "Update to modified version".
• Double click on one of JSON tree's column separators to resize the corresponding column so the largest text in that column will be visible.

KEY FEATURE - HTTP CLIENT

• To open HTTP Client window choose "Window -> HTTP Client" menu item or use "Shift + Cmd + K" shortcut.
• HTTP Client allows you to easily perform HTTP requests. While its main purpose is to ease the fetch of JSON content from a server, it can be used to get or upload any content, including binary. The following HTTP verbs are supported: GET, POST, PUT, DELETE, HEAD.
• HTTP Client allows you to create folders to group the HTTP requests. Folders inside folders are supported, too! This feature is very handy to group the projects or APIs you're working with.
• HTTP Client automatically detects if response body is text or binary, and for binary responses it will show the preview of it, while allowing you save it to the desired directory.
• For response bodies which are text, you will have the option to beautify them as JSON and to open them in a new JSON Editor document.
• Both HTTP authentication (basic, digest) and Proxy authentication, with Keychain integration, are supported.
• OAuth 2.0 is supported for the following providers: bitly, Facebook, Foursquare, GitHub, Google, Instagram.
• Once you have added and setup an OAuth 2.0 authorization you can attach it to a HTTP request. Once this is done, JSON Editor will take care of refreshing and attaching access token to the HTTP request.

SHOW MORE ...

Release Notes:

Improvements
• Now you can choose where the find (and replace) will take place in the JSON tree: in "Key" column or "Value" column or both. The option which controls which columns will be searched is available by clicking the "search" image in the find bar (Command + F) and then accessing the options from "Find In" submenu.
• Adds support to detect when the JSON document is changed by another application. In Preferences (Command + ,) -> "General" tab, you have the ability to customize what to do when this happens: "Keep JSON Editor's version" or "Ask how to resolve" or "Update to modified version".
• Double click on one of JSON tree's column separators will resize the corresponding column so the largest text in that column will be visible.
• Each document window now preserves the width of JSON tree's columns between application's relaunches. This preservation is done until you explicitly close the window.
• Application's Preferences (Command + ,) now supports setting the default width and height for the JSON document window. This is available in "General" tab, under "Defaults for document windows you're gonna open or create:"
• Application's Preferences (Command + ,) now supports setting the default width for JSON tree's "Key" and "Type" columns. This is available in "General" tab, under "Defaults for document windows you're gonna open or create:"
• Both the default size of document window and the width of the columns can be visually set by using the sample window shown after pressing "Get from Sample Window..." from application's Preferences (Command + ,) -> "General" tab.
• If you want the document windows which are already open to have the default size and default width of the columns that you set in Preferences then you can use "Update Open Windows to Defaults" button from "General" tab.

Bug fixing
• Fixes a crash which happened when adding a new OAuth 2.0 Authorization.

Introduced in Version 1.16

Bug fixing
• Fixed a crash which happened when using "Open in JSON Document" from HTTP Client or "New JSON Document Containing Selection" from Services menu.
• Fixed a crash which happened when closing a window which had the search bar visible, on macOS 10.12 (Sierra).

Introduced in Version 1.15

Improvements
• Multiple selection is now supported! You can select multiple siblings and perform the common operations on them.
• Added "Editor -> New Array from Selection" (Cmd + Shift + A) and "Editor -> New Object from Selection" (Cmd + Shift + D) menu items. These allow you to embed the selected items in an array or object (dictionary).
• The shortcut for "Add Row" is now Cmd + Return . This change was done because "Add Row" is probably the most used action in the application. A 2-keys shortcut provides the maximum for simplicity, and productivity as well.
• Preferences (Cmd + ,) now has an option to choose what happens when you press Return in tree editor: either the selected row will start editing or a new row will be created. The latter option is similar to Xcode's .plist editor, so some of you might find it more familiar.
• The entire text is shown upon hovering over "key" or "value" columns. This feature is especially useful for reviewing long texts.
• "Editor -> Expand All Children" has been renamed to "Recursively Expand Items" and "Editor -> Collapse All Children" to "Recursively Collapse Items".
• Added "Editor -> Expand Items" and "Editor -> Collapse Items".

Bug fixing
• Hitting Tab while in the "value" field will move the cursor to the "key" field of next row.
• Hitting Shift + Tab while in the "key" field will move the cursor to the "value" field of previous row.

SHOW LESS ...

Most Helpful Reviews

5/5
Version 1.7
Review by jack_cox

Nice app, very useful for examining REST responses - I've found it useful in digesting JSON responses from services and parsing those responses. One feature request: allow the user to assign aliases for the HTTP requests so that they can quickly identify them in the list. As it is now, the distinguishing portion of a request is usually way to the right and that part is truncated in the list of requests. Update: The developer is very responsive to change requests and improvmeents.

Found helpful by 2 out of 2 people