learnxinyminutes-docs/hjson.html.markdown

95 lines
2.6 KiB
Markdown
Raw Normal View History

2022-08-07 09:56:59 +00:00
---
language: Hjson
2022-08-07 09:56:59 +00:00
filename: learnhjson.hjson
contributors:
- ["MrTeferi", "https://github.com/MrTeferi"]
lang: en
---
Hjson is an attempt to make [JSON](https://learnxinyminutes.com/docs/json/) more human readable.
2022-08-07 09:56:59 +00:00
Hjson is a syntax extension to JSON.
2022-08-07 09:56:59 +00:00
It's NOT a proposal to replace JSON or to incorporate it into the JSON spec itself.
It's intended to be used like a user interface for humans,
to read and edit before passing the JSON data to the machine.
Let's take a look at examples to see the key syntax differences!
```hjson
{
# Comments are totally supported!
// With forward slashes too!
/*
Even block style comments, neat!
/*
# Strings do not require quotes!
# Just keep it to a single line
human: readable
quotes: "are fine too"
# Notice that commas are also not required!
# If using commas, strings DO require quotes!
object: {
name: hjson
properties: [
readable
exciting
fun
]
with_commas: [
"quoted",
"quoty",
"quote"
]
details: ["this", "is", "fine", "too"]
}
# Multiline quotes with proper whitespace handling are supported!
diary:
'''
I wish JSON was more human readable.
If only there was a JSON for my needs!
Oh wait.. there is! It's called Hjson.
2022-08-07 09:56:59 +00:00
'''
# Backslashes are interpretted as an escape character ONLY in quoted strings
slash: This will not have a new line\n
slash-quoted: "This will definitely have a new line\n"
# Make sure to use quotes when mixing whitespace with important punctuation
example1: "If, you're, going, to, comma in a string, use, quotes!"
example2: "Also if you want to use {} or [] or any JSON relevant punctuation!"
example3: [because, this, is, totally, BROKEN!]
example4: this is technically OK though: {}[],:
# Enjoy working with Hjson!
2022-08-07 09:56:59 +00:00
party-time: {
hjson-lovers: [
me
my mom
"my dad"
]
Hjson-power-level: 9000
2022-08-07 09:56:59 +00:00
supported: {
python: yes
java: yes
javascript: yes
c++: yes
Go: yes
C#: yes
Rust: yes
}
partial-support: ["C", "Kotlin", "Ruby", "Rust"]
}
}
```
## Further Reading
* [Hjson.github.io](https://hjson.github.io/) Main Hjson site including editor support, how-to, etc.
* [Hjson Packages](https://github.com/hjson/) Various Hjson packages for different applications.