summaryrefslogtreecommitdiffhomepage
path: root/hjson.html.markdown
blob: 6b3cc3ed4af8756a1c93fa62f8fef9306304a78c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
---
language: Hjson
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.

Hjson is a syntax extension to JSON. 
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!

```
{
    # 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.
        '''
    
    # Backslashes are interpreted 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!
    party-time: {
        Hjson-lovers: [
            me
            my mom
            "my dad"
        ]
        Hjson-power-level: 9000
        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.