这个语法可以解析JSON对象吗?
d= { kvp }
kvp= key : value | key : value , kvp
value= num | str | true | false | array | d | null
array= [] | [ element ]
element= value | value , element
key= num | str
答案 0 :(得分:0)
看起来不错,但是正如克里斯在评论中所说,所有JSON配置文件通常都包含null, trur, false ...
,在此丢失。
查看此语法(摘自json.org):
json:值;
obj:'{'对(','对)*'}'| '{''}';
pair:STRING':'value;
array:'['value(','value)*']'| '['']';
值:STRING | NUMBER | obj |数组| '真实'| '假'| 'null';
STRING:'“'(ESC | SAFECODEPOINT)*'”';
片段ESC:'\'([“ \ / bfnrt] | UNICODE);
片段UNICODE:'u'十六进制十六进制十六进制十六进制;
片段十六进制:[0-9a-fA-F];
片段SAFECODEPOINT:〜[“ \\ u0000- \ u001F];
NUMBER:“-”? INT('。'[0-9] +)? EXP? ;
片段INT:'0'| [1-9] [0-9] *;
//无前导零
片段EXP:[Ee] [+-]? INT;
//-因为-表示[...]内的“范围”
WS:[\ t \ n \ r] +->跳过;