首次上传
This commit is contained in:
92
docs/netease-tutorial-103.4-main/4-JSON故障排除示例及方法.md
Normal file
92
docs/netease-tutorial-103.4-main/4-JSON故障排除示例及方法.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# JSON故障排除示例及方法
|
||||
|
||||
在编写JSON的过程中,由于JSON的严谨格式,导致开发者经常会出现不小心就将JSON文件无效化的行为。在本节中,我们举几个常见的错误编写示例,并给出排除方法。
|
||||
|
||||
## 括号遗漏
|
||||
|
||||
JSON中的对象的花括号和数组的方括号都是成对出现的,如果只出现一边而没有出现另一边,便会导致JSON读取错误。虽说良好的缩进习惯可以帮助我们排除括号数量的问题,但还是可能会出现一些意想不到的括号错误。例如:
|
||||
|
||||
```json
|
||||
{
|
||||
"pools": [
|
||||
{
|
||||
"entries": [
|
||||
{
|
||||
"functions": [
|
||||
{
|
||||
"count": {
|
||||
"max": 1,
|
||||
"min": 1
|
||||
},
|
||||
"function": "set_count"
|
||||
},
|
||||
{
|
||||
"data": 0,
|
||||
"function": "set_data"
|
||||
}
|
||||
],
|
||||
"name": "test:custom_food",
|
||||
"type": "item",
|
||||
"weight": 1
|
||||
],
|
||||
"rolls": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
你能很快地定位到上述文件中遗漏的一个括号在哪里吗?相比这也是需要些许时间的。当文件内容更多时,一个括号的错误往往会更难排除。
|
||||
|
||||
排除括号的最简单的方法就是数括号的数量,因为有一个左括号就必定有一个右括号。首先,我们数左花括号的数量,共有6个。然后数右花括号的数量,却发现只有5个。那么我们就确定了一个括号不匹配的问题。
|
||||
|
||||
接下来,我们可以选择从最外层或最内层向另一个方向一对一对地匹配括号,很容易,我们会发现中间这个结构缺少右花括号:
|
||||
|
||||
```json
|
||||
{
|
||||
"functions": [
|
||||
{
|
||||
"count": {
|
||||
"max": 1,
|
||||
"min": 1
|
||||
},
|
||||
"function": "set_count"
|
||||
},
|
||||
{
|
||||
"data": 0,
|
||||
"function": "set_data"
|
||||
}
|
||||
],
|
||||
"name": "test:custom_food",
|
||||
"type": "item",
|
||||
"weight": 1
|
||||
```
|
||||
|
||||
在补上右花括号后,整个JSON重新回到有效状态。
|
||||
|
||||
## 最后的逗号
|
||||
|
||||
不管是对象还是数组,其内容物都是由一些逗号进行分隔。所以,逗号本质上是分隔符,而不是末尾的定界符。这意味着,不管是对象还是数组,其中最后一个元素的末尾都是不需要加逗号的。但是,由于我们的编写习惯,有些时候还是可能会不自觉在最后一个元素后面添加逗号,因此造成整个JSON解析失败。例如:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "小明",
|
||||
"height": 170,
|
||||
"weight": 60,
|
||||
}
|
||||
```
|
||||
|
||||
我们只需要格外注意最后一个元素,并将其逗号去掉即可,例如:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "小明",
|
||||
"height": 170,
|
||||
"weight": 60
|
||||
}
|
||||
```
|
||||
|
||||
## 缩进工具
|
||||
|
||||
大家可以搜索JSON格式化工具、JSON美化工具等关键词,找到一些在线的JSON格式化网页,这些网易能够将你的JSON一件格式化,同时添加合适的缩进,从而更方便大家的JSON数据故障排除。有些工具还能智能地指出一些JSON的错误,直接帮助我们定位到错误行进行故障排除。
|
||||
|
||||
如果你使用Visual Studio Code等IDE进行编辑,也可以享受这些IDE自带的错误提示功能,直接找到错误位置进行故障排除。
|
||||
Reference in New Issue
Block a user