如何读取JSON语法图?已学JSON但遗忘读取方法求指导
搞懂JSON语法图的数字解析逻辑
嘿,我明白你现在的困惑了——当年学的JSON语法图细节忘光,对着数字15瞎琢磨算术操作可太走偏啦!先给你纠正核心误区:JSON语法图是逐个字符匹配的,不是对数字值做运算,你之前那套15-1=14的操作完全搞错了解析逻辑。
先给你拆解JSON数字的语法图流程,再对应15的例子一步步走:
先搞懂JSON数字的语法结构(对应语法图)
JSON数字的合法路径是这样的:
- 开头可选负号
-(如果是正数就跳过) - 整数部分二选一:
- 要么是单个字符
0 - 要么是1-9开头,后面跟着任意数量的
0-9(这里的「任意数量」就是语法图里的循环箭头,意思是可以重复匹配数字)
- 要么是单个字符
- 可选的小数部分:
.后面必须跟至少一个0-9 - 可选的指数部分:
e/E开头,后面可选+/-,再跟至少一个0-9
针对15的正确解析流程
拿你说的15举例,按语法图走的话:
- 第一个字符是
1,属于「1-9」的范围,直接走进「非0开头的整数」分支 - 这个分支后面有个循环箭头(指向数字匹配的节点),意思是可以继续匹配任意
0-9字符 - 第二个字符是
5,符合0-9的规则,匹配循环分支,继续检查下一个字符 - 没有更多字符了,整个路径走通,
15是合法的JSON数字
语法图读取的通用小技巧
- 箭头是流程走向:沿着箭头走,遇到分支选符合当前字符的那条路就行
- 循环箭头(比如数字节点指向自身):代表这个规则可以重复应用(比如整数部分开头的1-9后面可以跟N个数字)
- 不要把字符串形式的数字当成数值来处理:解析的是每个字符,不是对数字做加减!
内容的提问来源于stack exchange,提问作者Number70




