Balancing Rock

Software for Apple products

Netherlands, Arnhem

Contact

img

App Store Link

Overview

proJSON v1.0 is a full spectrum JSON editor that is intended to grow into a suite of JSON tools.

It supports the entire JSON specification as well as JSON fragments and multiple top level JSON objects (or fragments) in a single file.

It goes a step beyond ordinary JSON editors by associating properties with JSON items. Currently these properties can be used to define fonts and colors for the JSON items. Properties are maintained by proJSON on a file-by-file basis and stored separate form the JSON files itself in a properties library. Optionally the property files can be managed by the user.

Features

  • Supports the JSON specification as defined in ECMA-404 (See http://json.org)
    • Duplicate naming of items in JSON Objects
    • Mixed types in an array
    • Fully reversible decoding/encoding (i.e. when reading and writing a JSON file the contents is not changed)
  • Outline and free-flow editing
  • JSON fragments
  • Multiple JSON top level objects (or fragments) per file
  • Hierarchical font and color specification

Use

The editor is intuitive to use and as such does not really need a manual. However it is worth noting some aspects that are typical to the way JSON works and our approach to towards data safety.

Path based properties

The first (and only) rule that a user should be aware of is that all properties are path based. Each JSON item that can be reached under the same path, will have the same properties.

Single or multiple JSON hierarchies per document

By default the editor starts up in single JSON hierarchy since this is the most common usage. In this mode the top level JSON object is not visible in the outline view, only its contents.

In multiple JSON hierarchies however the top level items are visible. Switching from multiple to single hierarchy is only possible if there is one nameless JSON object at the top level.

Fragments

JSON fragments can only be displayed in multiple JSON hierarchies.

File types (extensions)

proJSON opens files with the extension json and pro-json. A json file should contain a JSON string conform the definitions in the ECMA-404, or a JSON fragment. If a JSON file has a different extension (like txt) then please change this extension to json before attempting to open it.

A pro-json file is formatted in the BRBON format. It is used for the properties of a JSON document, but it can also include the JSON code. The BRBON format is a binary format that cannot be read in a normal text editor.

Properties files

proJSON can associate a document with a properties file. The association is by name. If a document (JSON file) is saved with the name “abcdef.json” proJSON will also create a file called “abcdef.pro-json”. This pro-json file is by default stored in the properties library and will be loaded automatically when the “abcdef.json” file is opened.

There are however more ways to associate a properties file with a JSON file, see the ‘screen by screen’ section for more.

Examples

The following contents are slightly more esoteric examples of complete JSON files that can be processed with proJSON.

A JSON number (fragment) without a name:

0

A named JSON string (fragment):

"name" : "John Smidt"

A named object (fragment):

"address" : { "city" : "New York", "street" : "Broadstreet", "number" : 1556 }

A dual hierarchy file (a JSON object and a JSON number fragment):

{}0

Multiple same-path booleans:

{
    "allow" : true,
    "allow" : false,
    "allow" : false
}

Mixed element types in an array (fragment):

[true, false, 12, "pro"]

FAQ

Q: Why is proJSON free?

Answer: proJSON is only free in the version 1.0 & 1.1. Subsequent versions will carry a price tag that will increase as the number of features increases.

Q: Can I submit a feature request or bug report?

Answer: Yes, please do. At info@balancingrock.nl using ‘proJSON’ in the title.

Q: Which features can be expected in the near future?

Answer: For legal reasons we have to be obscure about that. However we want to create the best possible JSON platform out there and have a long roadmap with many features planned.

It is very likely that the next version will give the user more control over the association of JSON files with properties files.

Q: When will the next version be released?

Answer: We cannot give a timeline for the next feature release.

Fixes for high priority bugs will be released asap after the bug report. Low priority bugs will be collected into a single bugfix release.

Answer: No. We strongly believe in privacy and will never send any data to Balancingrock or other parties without explicit user permission.

Known bugs

001: When switching from the outline tab to the text tab and back, the document will be marked as ‘modified’ even if no changes were made in the text tab.

Detailed usage: Screen by screen

Settings

The Settings screen contains settings that apply to the entire document. The document settings can be stored in the pro-json properties file associated with the document.

Associated Properties File: The file in which the properties will be stored. This file is set when opening the document or through selecting or saving a properties file. This field is for information only since the decision to save the properties (or not) is made by the user when the document is saved. Note that the properties can also be saved explicitly through the file-menu during editing.

If the document is a pro-json document this value is set to Self.

Remove button: If a properties file was manually selected (i.e. associated) for this document, the Remove button can be used to remove the association. This ensures that the associated properties file will not be updated when the document is saved.

Default Font: The default font and color used for all characters in the outline tab and print view. Note that this font will always be used for the JSON control characters like {}[],: and " in the print view. The text tab will always use a mono spaced font with the color black.

Name Font: The default font for all item names in the outline tab and print view. The text tab will always use a mono spaced font with the color black.

Value Font: The default font for all item values in the outline tab and print view. The text tab will always use a mono spaced font with the color black. Note that when a value contains other items, this font will be inherited by the sub items for both name and value. I.e. if the value of a JSON OBJECT is set to the color blue, then all items contained in the OBJECT will be blue for both name and value.

Behaviour: The document can either use a single properties table for all JSON hierarchies in the document, or use a separate properties table for each JSON hierarchy. When switching from a multiple properties tables to a single properties table, only the properties set on the first JSON OBJECT or fragment will remain.

Apply: Writes the changes to the document and close the sheet.

Dismiss: Ignore any changes made and close the sheet.

Save… & Save As…

In addition to the standard Save sheet, there are two additional options:

Format: By default the document will be stored in a standard JSON file and the properties in a properties file in the properties library. However it is possible to save the entire document (properties and JSON code) in a single pro-JSON file.

Keep in mind that the pro-JSON format is not compatible with other software packages and that it is a binary format that cannot be read in text editors.

Also Save/Update properties: When this checkbox is checked, the properties will be saved in a properties file stored in the properties directory irrespective of the format of the document (JSON code).

Open…

By default proJSON will try to find and load a properties file. If, however, the properties file should not be loaded it is possible to prevent this by clicking the Options button in the open dialogue and deselecting the checkbox button.

If a pro-JSON file is opened, the checkbox is disabled and ignored, the properties in the pro-JSON file will always be applied.

Associate Properties File…

This sheet allows the selection of a (new) associated properties file.

It contains two checkboxes which control how the properties will be affected, both in the document and in the selected properties file.

Clear current properties…: Before applying the properties from the new associated properties file clear the existing properties. This is the default behaviour.

Do not apply new properties: The document remains as is. Upon saving, the new associated properties file will reflect the properties of the current document.

Note 1: Any JSON code in the new properties file will be removed when saving the document.

Note 2: Any property in the new associated properties file that has no path in the current document will be removed automatically on saving.

This operation can be undone in the ‘Settings’ screen by removing the associated properties file.

Apply Properties File…

This sheet allows the selection of a file whose properties must be applied. The existing properties are not cleared, they remain as is unless overwritten by the applied properties.

Save Properties… & Save Properties As…

The Save Properties menu will save the properties currently visible in the document to the associated properties file. If there is no associated properties file it will open the Save Properties As… sheet.

The Save Properties As… sheet allows the creation of a new properties file in which all currently present document properties are stored. This file can be set as the associated properties file, but if the name of the new properties file is different than the name of the JSON file, it will not be loaded when the JSON file is opened.

Of course if the same name is chosen, then it will be associated with the JSON file if opened at the same time.

To create a new properties file in the library, simply save the JSON file, and confirm the creation of a properties file.

End of document.

App Store Link