什么是JSON?
你有没有遇到过这样的情况:在用手机App查天气时,页面加载后突然显示出温度、湿度和空气质量?这些信息其实大多是通过一种叫JSON的数据格式传过来的。JSON全称是JavaScript Object Notation,中文意思是“JavaScript对象表示法”,但它不只用于JavaScript,几乎所有编程语言都能读写它。
它的结构看起来像这样:
{
"name": "小明",
"age": 18,
"city": "北京",
"hobbies": ["篮球", "音乐", "读书"]
}
看懂JSON的基本结构
上面这段数据里,大括号{}包住的是一个“对象”,里面每一项都是“键值对”:冒号前面是“键”(key),后面是“值”(value)。比如"name": "小明",意思是名字是小明。
注意几个常见的值类型:
- 字符串要用双引号包围,比如"杭州"
- 数字直接写,比如100或3.14
- 布尔值写true或false,没有引号
- 数组用中括号[],比如存放多个爱好
- 还可以嵌套对象,比如把地址单独列出来
举个更复杂的例子:
{
"user": {
"id": 1001,
"profile": {
"nickname": "CodeFan",
"level": 5
}
},
"logged_in": true
}
怎么在程序里解析JSON?
假设你在写一个Python脚本,从网络上拿到了一段JSON字符串,现在想取出里面的用户名。你可以用内置的json模块来处理。
import json
# 假设这是从服务器收到的数据
data_str = '{"username": "jack", "login_count": 12}'
# 把字符串转成Python字典
data = json.loads(data_str)
# 取出用户名
print(data["username"]) # 输出 jack
这里的关键是json.loads(),它把JSON字符串变成你能操作的字典。反过来,如果你想把字典发出去,就用json.dumps()转回字符串。
常见错误别踩坑
新手常犯的一个问题是用了单引号。记住,JSON标准要求键和字符串必须用双引号,下面这种写法会报错:
{'name': 'lily'} # 错误!不能用单引号
另一个容易出错的地方是拼错键名。比如你想取"email",但写成了"emial",程序不会提醒你,只会返回空或者报错。
还有一种情况是数据类型混淆。比如服务器返回的年龄是字符串"25",你在代码里拿它做加减就会出问题。这时候需要手动转成int类型。
实际应用场景举例
你可能在做一个小项目,比如抓取豆瓣电影Top250的数据。每次请求返回的都是一段JSON,里面包含电影标题、评分、导演等信息。你需要从中提取片名和评分,打印出来。
核心步骤就是:发请求 → 拿到JSON字符串 → 解析成对象 → 遍历列表 → 提取字段。整个过程离不开对JSON的理解和处理。
现在很多App和网站后台通信都不传网页了,直接传JSON。学会解析它,你就打开了和数据打交道的大门。别把它想得太复杂,就像看一份整齐的表格,只不过换了一种写法而已。