hocon is a superset of JSON file type, So JSON syntax almost works in the hocon configuration file.

So Every syntax of JSON objects works with hocon configuration.

Hocon Configuration Syntax

Configuration can be defined with key and value.

Here is a simple configuration defined in the hocon .conf file

Here is a syntax

key:value
key=value

the key is a string value value can be string, boolean, array or map, or number key and value are separated by a colon(:) or equal (=) symbol

The same syntax can be declared and rewritten as follows.

{
  key:value

  key=value
}

Root element braces({}) are omitted.

The below configuration is also valid.

key:value

The same can be rewritten in JSON.

{
  "key":"value"
}

Let’s see some examples of different keys and values.

String value example in hocon

{
keystring:"keyvalue"
keystring1:"keyvalue1"
}

Number value example in hocon

{
keyinteger:12
keyfloat:11.0
}

boolean value example

{
key boolean:true
keyboolean1:false
keyboolean2:yes
keyboolean3:no
}

Array values example The array contains a group of values enclosed in square brackets []. The values in the array can be strings, booleans, integers

      emptyArray: []
      intArray: [11, 12, 13]
      stringArray: ["one","two","three"]
      booleanArray: [true,false,yes,no]

The object can also be declared as values in hocon configuration

dev: {
hostname: dev.site.com,
username: username,
password: password,
}

Comments

Comments are useful text to describe each line of text. This will be ignored by the processor or compiler during reading.

It supports inline comments and these always stats with ‘//’ and ‘#’

// this is an inline comment
\# this is another inline comment

Includes

This is one of the important features which is not available in JSON. This is used to include multiple files

let’s declare database.conf which contains common properties database.conf

database.port=5712
database.ssenabled=true

dev.conf

include "database.conf"

hostname: dev.site.com,
username: username,
password: password,

Substitution variable

Hocon supports Substitution variables using ${} syntax

It replaces the variable with a variable as seen below

devprofile {
      hostname: dev
     
    }
 devpath: ${devprofile.hostname}:8080