掌握JSON格式的核心规则,避免常见错误
JSON数据以键值对的形式组织,键和值之间使用冒号分隔。
"name": "张三"
JSON中的键必须使用双引号包裹,单引号或不使用引号都是无效的。
"firstName": "李四"
firstName: "李四" // 键没有引号
'lastName': '王五' // 使用单引号
多个键值对之间使用逗号分隔。
{
"name": "张三",
"age": 30,
"city": "北京"
}
JSON对象使用大括号{}包裹。
{
"person": {
"name": "张三",
"age": 30
}
}
JSON数组使用中括号[]包裹。
[
"苹果",
"香蕉",
"橙子"
]
必须使用双引号表示。
"Hello, World!"
"姓名"
"123" // 这是字符串,不是数字
整数或浮点数,不需要引号。
42
3.14159
-7
1.2e10
true 或 false,小写且无引号。
true
false
表示空值,小写且无引号。
null
无序的键值对集合。
{
"name": "张三",
"age": 30
}
有序的值集合。
["苹果", "香蕉", "橙子"]
[1, 2, 3, 4, 5]
{
"firstName": "张",
"lastName": "三",
"age": 30,
"isStudent": false,
"hobbies": ["阅读", "游泳", "编程"],
"address": {
"street": "人民路123号",
"city": "北京",
"country": "中国"
}
}
[
{
"id": 1,
"product": "笔记本电脑",
"price": 5999.99,
"inStock": true
},
{
"id": 2,
"product": "智能手机",
"price": 2999.99,
"inStock": false
},
{
"id": 3,
"product": "平板电脑",
"price": 1999.99,
"inStock": true
}
]
{
"company": "ABC科技有限公司",
"employees": [
{
"id": 101,
"name": "张三",
"department": "技术部",
"projects": [
{
"name": "项目A",
"status": "进行中"
},
{
"name": "项目B",
"status": "已完成"
}
]
},
{
"id": 102,
"name": "李四",
"department": "市场部",
"projects": []
}
]
}
{
'name': '张三',
'age': 30
}
{
"name": "张三",
"age": 30
}
{
"name": "张三",
"age": 30,
}
{
"name": "张三",
"age": 30
}
JSON标准不支持注释,添加注释会导致解析错误。
{
// 这是姓名
"name": "张三",
/* 这是年龄 */
"age": 30
}
{
"name": "张三",
"age": 30
}
如果确实需要注释,可以添加专门的注释字段:
{
"_comment": "这是姓名",
"name": "张三",
"age": 30
}
JSON字符串中的特殊字符需要使用反斜杠进行转义。
| 字符 | 转义序列 | 示例 |
|---|---|---|
| 双引号 | \" | "他说:\"你好!\"" |
| 反斜杠 | \\ | "路径:C:\\Windows\\System32" |
| 换行 | \n | "第一行\n第二行" |
| 制表符 | \t | "姓名\t年龄" |
可以使用在线工具或编程语言内置函数验证JSON格式是否正确。
function isValidJSON(str) {
try {
JSON.parse(str);
return true;
} catch (e) {
return false;
}
}
// 使用示例
const jsonString = '{"name": "张三", "age": 30}';
console.log(isValidJSON(jsonString)); // true
import json
def is_valid_json(json_string):
try:
json.loads(json_string)
return True
except ValueError:
return False
# 使用示例
json_string = '{"name": "张三", "age": 30}'
print(is_valid_json(json_string)) # True
良好的格式化可以提高JSON的可读性。
{"name":"张三","age":30,"hobbies":["阅读","游泳","编程"],"address":{"street":"人民路123号","city":"北京","country":"中国"}}
{
"name": "张三",
"age": 30,
"hobbies": [
"阅读",
"游泳",
"编程"
],
"address": {
"street": "人民路123号",
"city": "北京",
"country": "中国"
}
}