JSON is a data format for transferring data between different machines hocon is configurable data for environment settings like dev, test, stage, and production environment.
HOCON is a superset of JSOn with the below features
- includes
- substitutions
- comments
Let’s see the difference between the two file formats.
JSON declared as follows
"roles": {
"type": "admin"
}
The same can be rewritten in hocon double quotes are not required and optional in hocon
roles: {
type: admin
}
colon(:
) before {
are not optional
roles {
type: admin
}
In json, Object properties are separated by ,
JSON object example
role: {
id: 24,
name: 'admin',
active: false,
}
In Houston, Object attributes are separated by a new line
role: {
id: 24
name: 'admin'
active: false
}
Hocon | json |
---|---|
It is used as a configuration language for environment specific | It is a data transfer format used in between different systems |
It is a superset of JSON and All the syntax of JSON works | JSON syntax |
Comments are supported | Comments are not supported |
Includes and substitutions are supported | No support for includes and substitutes |
Can write config without double quotes | It is very difficult without double quotes for key and values |
Support DRY and inheritance principles | Not supported |