报错指向第 37 行,问题在第 3 行

接口返回的 JSON 解析失败,报错说第 37 行附近有问题。我盯着那一行看了半小时,怎么看都对。

后来发现是第 3 行少了一个花括号,后面全跟着错位,报错位置只是受害者。

第一层:容器

括号和逗号,占了一半的错误量,先查这一层性价比最高。

看括号是否成对,花括号和方括号各管各的,混用最容易出事。

看逗号有没有落在最后一个元素后面,那里不该有逗号,这是最高频的错误。

看根节点是不是只有一个,多塞一个对象进去就是语法错误,拼接字符串时常犯。

宝塔拨测工具盒:站长工具与 IT 工具入口

宝塔拨测工具盒:站长工具与 IT 工具入口

第二层:字符串

引号、转义、换行,三个关键词,记住就能覆盖大半。

键和值都得用双引号,单引号不合法,这一点和写代码的习惯不一样。

字符串里的双引号要转义,反斜杠本身也要转义,路径最容易漏。

字符串里不能直接换行,得写成转义字符,多行文案复制进来就出错。

中文引号混进来最难查,肉眼几乎看不出差别,搜一遍引号最有效。

第三层:值

格式对不对,和值合不合法,是两件事,报错常常只说第一件。

数字不能有前导零,也不能写成 .5 这种形式,从表格粘贴过来经常带。

布尔和 null 必须小写,True、None 都是别的语言的写法,看起来很像但不合法。

NaN 和 Infinity 不是合法值,得换成字符串或 null。写完贴进宝塔拨测的开发者工具集的 JSON 格式化跑一遍,能排版就说明语法通了。

排查顺序

顺序定了,就不会来回打转,也能跟同事解释清楚。

先整体过一遍括号,用编辑器的括号匹配功能最快,肉眼比不上。

再定位第一个报错位置往前找,别往后找,错误几乎总在前面。

别做的事

这几件事,做了只会更乱,还容易把好数据改坏。

一次改十几处,改完还错就不知道是哪一处的问题,等于重来。

直接删掉报错行,那多半只是症状,不是病因,删了还会以别的方式报出来。

三层混着改,改到最后自己都不确定哪版是对的,也没法跟别人解释。

按层查,比凭感觉改快得多。

这种感觉,做几次就有了。

有了感觉,看错误就快了。

快不是天赋,是练出来的。

练出来的东西,才靠得住。

靠得住,才敢拿去交付。

交付前多跑一遍格式化,稳妥。

稳妥,是长期做事的底色。

底色稳,别人才敢把事交给你。

这一点,比技术细节更重要。

技术会过时,习惯不会。

习惯好,出错就少。

少出一次错,就少返一次工。