JSON标点错误怎么检查?按容器、字符串和值逐层看
报错指向第 37 行,问题在第 3 行
接口返回的 JSON 解析失败,报错说第 37 行附近有问题。我盯着那一行看了半小时,怎么看都对。
后来发现是第 3 行少了一个花括号,后面全跟着错位,报错位置只是受害者。
第一层:容器
括号和逗号,占了一半的错误量,先查这一层性价比最高。
看括号是否成对,花括号和方括号各管各的,混用最容易出事。
看逗号有没有落在最后一个元素后面,那里不该有逗号,这是最高频的错误。
看根节点是不是只有一个,多塞一个对象进去就是语法错误,拼接字符串时常犯。

宝塔拨测工具盒:站长工具与 IT 工具入口
第二层:字符串
引号、转义、换行,三个关键词,记住就能覆盖大半。
键和值都得用双引号,单引号不合法,这一点和写代码的习惯不一样。
字符串里的双引号要转义,反斜杠本身也要转义,路径最容易漏。
字符串里不能直接换行,得写成转义字符,多行文案复制进来就出错。
中文引号混进来最难查,肉眼几乎看不出差别,搜一遍引号最有效。
第三层:值
格式对不对,和值合不合法,是两件事,报错常常只说第一件。
数字不能有前导零,也不能写成 .5 这种形式,从表格粘贴过来经常带。
布尔和 null 必须小写,True、None 都是别的语言的写法,看起来很像但不合法。
NaN 和 Infinity 不是合法值,得换成字符串或 null。写完贴进宝塔拨测的开发者工具集的 JSON 格式化跑一遍,能排版就说明语法通了。
排查顺序
顺序定了,就不会来回打转,也能跟同事解释清楚。
先整体过一遍括号,用编辑器的括号匹配功能最快,肉眼比不上。
再定位第一个报错位置往前找,别往后找,错误几乎总在前面。
别做的事
这几件事,做了只会更乱,还容易把好数据改坏。
一次改十几处,改完还错就不知道是哪一处的问题,等于重来。
直接删掉报错行,那多半只是症状,不是病因,删了还会以别的方式报出来。
三层混着改,改到最后自己都不确定哪版是对的,也没法跟别人解释。
按层查,比凭感觉改快得多。
这种感觉,做几次就有了。
有了感觉,看错误就快了。
快不是天赋,是练出来的。
练出来的东西,才靠得住。
靠得住,才敢拿去交付。
交付前多跑一遍格式化,稳妥。
稳妥,是长期做事的底色。
底色稳,别人才敢把事交给你。
这一点,比技术细节更重要。
技术会过时,习惯不会。
习惯好,出错就少。
少出一次错,就少返一次工。