Tabular-JSON specification

Tabular-JSON is a superset of JSON. Below, the grammer for Tabular-JSON is displayed and compared with JSON. The JSON grammer comes from the official website https://www.json.org/. The grammers use McKeeman Form.

JSON grammer
1
json
 
 
2
element
3
4
value
5
object
6
array
 
7
string
8
number
 
9
"true"
10
"false"
11
"null"
12
13
object
14
'{' ws '}'
15
'{' members '}'
16
17
members
18
member
19
member ',' members
20
21
member
22
ws string ws ':' element
23
24
array
25
'[' ws ']'
26
'[' elements ']'
27
28
elements
29
element
30
element ',' elements
31
32
element
33
ws value ws
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
string
 
 
 
 
36
'"' characters '"'
37
38
characters
39
""
40
character characters
41
42
character
43
'0020' . '10FFFF' - '"' - '\'
44
'\' escape
45
46
escape
47
'"'
48
'\'
49
'/'
50
'b'
51
'f'
52
'n'
53
'r'
54
't'
55
'u' hex hex hex hex
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
hex
58
digit
59
'A' . 'F'
60
'a' . 'f'
61
62
number
63
integer fraction exponent
64
65
integer
66
digit
67
onenine digits
68
'-' digit
69
'-' onenine digits
70
71
digits
72
digit
73
digit digits
74
75
digit
76
'0'
77
onenine
78
79
onenine
80
'1' . '9'
81
82
fraction
83
""
84
'.' digits
85
86
exponent
87
""
88
'E' sign digits
89
'e' sign digits
90
91
sign
92
""
93
'+'
94
'-'
95
 
 
 
 
 
 
 
 
 
 
 
 
 
96
ws
97
""
98
space ws
99
tab ws
100
newline ws
101
carriagereturn ws
102
 
 
 
 
 
103
space
104
'0020'
105
106
tab
107
'0009'
108
109
newline
110
'000A'
111
112
carriagereturn
113
'000D'
114
Tabular-JSON grammer
 
1
tabular-json
2
table_contents
3
element
4
5
value
6
object
7
array
8
table
9
string
10
number
11
date
12
"true"
13
"false"
14
"null"
15
16
object
17
'{' ws '}'
18
'{' members '}'
19
20
members
21
member
22
member ',' members
23
24
member
25
ws string ws ':' element
26
27
array
28
'[' ws ']'
29
'[' elements ']'
30
31
elements
32
element
33
element ',' elements
34
35
element
36
ws value ws
37
38
table
39
'---' wst newline table_contents newline wst '---'
40
41
table_contents
42
header newline rows
43
44
header
45
field
46
field ',' header
47
48
rows
49
row
50
row newline rows
51
52
field
53
wst string wst
54
wst string wst '.' field
55
56
row
57
wst value wst
58
wst value wst ',' row
59
60
string
61
quoted_string
62
unquoted_string
63
64
quoted_string
65
'"' characters '"'
66
67
characters
68
""
69
character characters
70
71
character
72
'0020' . '10FFFF' - '"' - '\'
73
'\' escape
74
75
escape
76
'"'
77
'\'
78
'/'
79
'b'
80
'f'
81
'n'
82
'r'
83
't'
84
'u' hex hex hex hex
85
86
unquoted_string
87
unquoted_start
88
unquoted_start unquoted_end
89
unquoted_start unquoted_chars unquoted_end
90
91
unquoted_start
92
unquoted_char - wst - digit
93
94
unquoted_end
95
unquoted_char - wst
96
97
unquoted_chars
98
unquoted_char
99
unquoted_char unquoted_chars
100
101
unquoted_char
102
'0020' . '10FFFF' - delimiter
103
104
delimiter
105
'"'
106
','
107
'.'
108
':'
109
'-'
110
'['
111
']'
112
'{'
113
'}'
114
newline
115
116
hex
117
digit
118
'A' . 'F'
119
'a' . 'f'
120
121
number
122
integer fraction exponent
123
124
integer
125
digit
126
onenine digits
127
'-' digit
128
'-' onenine digits
129
130
digits
131
digit
132
digit digits
133
134
digit
135
'0'
136
onenine
137
138
onenine
139
'1' . '9'
140
141
fraction
142
""
143
'.' digits
144
145
exponent
146
""
147
'E' sign digits
148
'e' sign digits
149
150
sign
151
""
152
'+'
153
'-'
154
155
date
156
date 'T' time 'Z'
157
date 'T' time '.' milliseconds 'Z'
158
159
date
160
digit digit digit digit '-' digit digit '-' digit digit
161
162
time
163
digit digit '-' digit digit '-' digit digit
164
165
milliseconds
166
digit digit digit
167
168
ws
169
""
170
space ws
171
tab ws
172
newline ws
173
carriagereturn ws
174
175
wst
176
""
177
space ws
178
tab ws
179
180
space
181
'0020'
182
183
tab
184
'0009'
185
186
newline
187
'000A'
188
189
carriagereturn
190
'000D'
191
Tabular-JSON grammer, compared with JSON
0
json
1
tabular-json
2
table_contents
3
element
4
5
value
6
object
7
array
8
table
9
string
10
number
11
date
12
"true"
13
"false"
14
"null"
15
16
object
17
'{' ws '}'
18
'{' members '}'
19
20
members
21
member
22
member ',' members
23
24
member
25
ws string ws ':' element
26
27
array
28
'[' ws ']'
29
'[' elements ']'
30
31
elements
32
element
33
element ',' elements
34
35
element
36
ws value ws
37
38
table
39
'---' wst newline table_contents newline wst '---'
40
41
table_contents
42
header newline rows
43
44
header
45
field
46
field ',' header
47
48
rows
49
row
50
row newline rows
51
52
field
53
wst string wst
54
wst string wst '.' field
55
56
row
57
wst value wst
58
wst value wst ',' row
59
60
string
61
quoted_string
62
unquoted_string
63
64
quoted_string
65
'"' characters '"'
66
67
characters
68
""
69
character characters
70
71
character
72
'0020' . '10FFFF' - '"' - '\'
73
'\' escape
74
75
escape
76
'"'
77
'\'
78
'/'
79
'b'
80
'f'
81
'n'
82
'r'
83
't'
84
'u' hex hex hex hex
85
86
unquoted_string
87
unquoted_start
88
unquoted_start unquoted_end
89
unquoted_start unquoted_chars unquoted_end
90
91
unquoted_start
92
unquoted_char - wst - digit
93
94
unquoted_end
95
unquoted_char - wst
96
97
unquoted_chars
98
unquoted_char
99
unquoted_char unquoted_chars
100
101
unquoted_char
102
'0020' . '10FFFF' - delimiter
103
104
delimiter
105
'"'
106
','
107
'.'
108
':'
109
'-'
110
'['
111
']'
112
'{'
113
'}'
114
newline
115
116
hex
117
digit
118
'A' . 'F'
119
'a' . 'f'
120
121
number
122
integer fraction exponent
123
124
integer
125
digit
126
onenine digits
127
'-' digit
128
'-' onenine digits
129
130
digits
131
digit
132
digit digits
133
134
digit
135
'0'
136
onenine
137
138
onenine
139
'1' . '9'
140
141
fraction
142
""
143
'.' digits
144
145
exponent
146
""
147
'E' sign digits
148
'e' sign digits
149
150
sign
151
""
152
'+'
153
'-'
154
155
date
156
date 'T' time 'Z'
157
date 'T' time '.' milliseconds 'Z'
158
159
date
160
digit digit digit digit '-' digit digit '-' digit digit
161
162
time
163
digit digit '-' digit digit '-' digit digit
164
165
milliseconds
166
digit digit digit
167
168
ws
169
""
170
space ws
171
tab ws
172
newline ws
173
carriagereturn ws
174
175
wst
176
""
177
space ws
178
tab ws
179
180
space
181
'0020'
182
183
tab
184
'0009'
185
186
newline
187
'000A'
188
189
carriagereturn
190
'000D'
191