Terms and abbreviations

Lingua franca of Fortified configuration

General

JSON

JavaScript Object Notation

JSON is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

See more: https://www.json.org/

Property

A property is a name-value pair. Property names are always strings ("..."), values can be of any JSON type.

In JSON a property looks like this:

"property_name": <property-value>

Properties MUST be defined inside an object and separated with comma (,). Objects are defined using curly brackets ({}):

{
  "property_name": <property-value>
}

Property values can be of the following types:

  • string ("string value")

  • number (1, 99, 765474, 3.14)

  • boolean (true, false)

  • object ({})

  • array ([])

{
    "str": "string property",
    "int": 79,
    "float": 3.14,
    "bool": true,
    "obj": {
        "object_property": "another string value"
    },
    "arr": [
        "first array element",
        "second array element"
    ] 
}

Objects and arrays can be nested (an object can contain a property with a value of type array that contain objects).

Advanced

Property expansion

Property expansion means replacing a property value, or parts of a value, with the value of another property. The expression is the path to the property.

{
    "first_property": "first value",
    "second_property": "${first_property}"
}

For more information and details, see: Property expansion

File inclusion

Configuration supports inclusion of files to enable modularisation. Only files of type JSON (with file extension .json) containing an object or an array can be included.

An inclusion looks like this:

"included_property": "@include:path/to/file.json"

Inclusion will replace the property value with the content of the included file (JSON object or array).

Path to included file can be absolute or relative. Relative path are resolved against the directory of the including file.

For more information and details, see: File inclusion