Start

JSON Files - JavaScript Object Notation

Origin and Support of the JSON Format

JSON files were developed for simple data exchange. The files are readable easily both by computers and humans. The file format was originally developed for the programming language JavaScript and is part of the international standard ECMA–262 (European Computer Manufacturers Association). JavaScript is an implementation of the ECMAScript standard, developed by Netscape, or the Mozilla Foundation, respectively.

PropEdit supports the original, strict interpretation of the ECMA standard, as it is commonly used in macOS and is part of the Internet standard RFC 8259, but PropEdit also supports its extension JSON5 as well. This means:

Easily Readable or Compact Presentation

It’s common to break up JSON files using spaces and lines so that a human can easily read them. In this way, the individual items of arrays and dictionaries are each listed clearly on one line, while nested objects are often indented when written.

For a computer, however, an easy-to-read display is not necessary. Instead, the goal is often to save storage space. It’s therefore also possible to arrange JSON files in a particularly compact manner. Spaces and lines breaks will then only be used if absolutely necessary.

PropEdit uses the easily readable file variant by default. Compact storage can be enforced by using the Export feature in the application.

Compatibility between Property Lists and JSON files

Files in plist and JSON formats can both be used as property lists. In practice, the two types can usually be converted into each other immediately. However, note the following limitations that arise directly from the definitions mentioned above:

Limitations when Writing JSON Data

As mentioned earlier, white space (spaces and line breaks) is commonly used to create indentation and separate lines to make JSON data readable. Which exact way this should be done is not standardized, however. So when you open a file, modify it with PropEdit, then save it again, it will usually happen in most cases that the internal notation of the data changes. This cannot be avoided. For this reason, please consider the following limitations and policies that are a direct result of this fact: