Balancing Rock

Software for Apple products

Arnhem, Netherlands



Home - GUI - App Store Link


Using proJSON is pretty much self explanatory, in the screenshots below we will mention some aspects that may go unnoticed or need a little explaining.

Document Window

The document window looks as follows:


The properties inspection panel on the right hand side can be hidden using the “Properties Panel” button in the toolbar.

The JSON items can be edited in the outline view itself, or by using the properties panel. The type of an item can be changed by the right-click menu in the outline view or in the properties panel.

The font/color information is visible in the outline tab but not the text tab. (We did try to enable font/color in the text tab, but that gets confusing quickly when flipping back to the outline tab) Since the font/color information is path based and independent of the JSON code, the font/color information will remain when switching repeatedly between the tabs.

When switching from the text tab to the outline tab the text will be parsed to catch possible violations of the JSON standard. If errors are found, the user will be presented the option to either fix the problem or discard the edits.

The document can be printed as a JSON hierarchy, using the fonts and colors as visible in the outline tab.

Properties panel button

This button either shows or hides the properties panel in the outline tab.

Escape Sequences selector

This selector can alternate between “Unicode” and “Textified”. When “Unicode” is selected the JSON strings (and names) will display the escaped Unicode sequence, in “Textified” the glyphs for the unicode sequences are shown. This only affects the display. Characters can always and everywhere be entered by pressing the usual keyboard shortcuts or using the Character Viewer (Edit -> Emoji & Symbols).

Root item(s) selector

This selector can alternate between “Single” and “Multiple”. This affects the number of top level items in a file. In “Single” mode the JSON hierarchy can only hold 1 top level item. In the “Multiple” mode there can be multiple JSON hierarchies per file.

Note that creating/viewing a fragment can only be done in the “Multiple” mode.

When “Single” is selected a top level JSON Object will not be shown, it is however present. To view a named top level object/array (i.e. a fragment) set the “Multiple” mode.

Switching from “Multiple” to “Single” is only possible when there is a single unnamed JSON Object.

Note: While it is possible to remove names for the top level items, this cannot be done for items further down the hierarchy that are contained in a JSON Object.

Document Settings Sheet


Properties file

This is the file that was used to read and may be used to write the properties to. These fields are only shown when a json file is opened. They are for information only.

The font defaults

These defaults will apply to the entire document. Including the JSON structure characters like “{[,:]}”.

Properties behaviour

Since a single document can contain multiple JSON hierarchies, this popup button controls how properties must be applied to those hierarchies.

There are two options: Either there is a single properties hierarchy that will be applied to all JSON hierarchies, or there is a separate properties hierarchy for each JSON hierarchy. In the later case the user should use named hierarchies (i.e. fragments) in order to achieve a clear separation of hierarchies. Failing to do so can lead to unexpected behaviour as the properties are applied path based.

File Mapping


In this tab the user can associate the pro-json properties file with specific json files. This information is stored in the pro-json file itself, and the pro-json file must be stored in the properties library for this feature to work as expected.

There are two options: filename based regular expressions or JSON item path/key regular expressions.

Filename regular expressions: If a JSON file is opened and the any of the given regular expression yields an exact match on the entire filename, then the properties in this file will be applied to the JSON file.

Path/key regular expressions: If a JSON file is opened and it contains an item at the given path, and the string representation of that item matches the key regular expression exactly, the properties in this file will be applied to the JSON file.

Priorities are as follows:

The first priority is an exact filename match. If a JSON file is opened with the same name as a pro-json file then the properties in that pro-json file will be applied to the JSON file. For this to work, the pro-json file must be opened at the same time, or must reside in the properties library.

The second priority is that filename regular expression take precedence over path/key regular expressions, unless the path/key regular expression has the override option set.

The third priority is the filename of the pro-json file in which the regular expressions are stored. This priority is alphabetically. (See “Properties Library”)

Associate Properties File Menu


Using this menu an existing properties file can be set as the Read/Write properties file of a JSON file.

When associating a pro-json file there are two options:

  • Clear current properties before applying new properties
  • Do not apply new properties

If the properties are not applied, then the properties in the new associated properties file will be overwritten when the json file is saved.

Properties Library Window


This is mostly a for-info window that shows all regular expressions in the pro-json files in the properties library.

It can also be used to delete files from the properties library, and to create new files in the properties library. It is not possible to edit the regular expression in this window, but the right-click menu can be used to open any of the pro-json files immediately in their settings/file-mapping tab.

Be aware that all regexs are evaluated before the Path/Key’s are evaluated. Even if a Path/Key applies to a JSON file, but a regular expression in a pro-json file lower in the window also applies, then the pro-json file with the regular expression match will be used. Unless the override option is also used on the Path/Key.