JSON语法详解
JSON简介
JSON(JavaScript Object Notation,即JavaScript对象表示法)是一种轻量级的数据交换格式。它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言。JSON具有自我描述性,很容易理解。目前大多数接口返回的数据格式为JSON,因此进行接口测试必须掌握JSON。
JSON语法
语法规则
- 数据在键 数据在键 /值对中 值对中
- 数据由逗号分隔 数据由逗号分隔 数据由逗号分隔
- {花括号 }保存对象 保存对象
- [方括号 ]保存数组 保存数组
JSON 键/值对
JSON 数据的书写格式是:key:value键值对。
比如: "Name" : "mianmian"
- JSON 值可以是:
- 数字(整或浮点)
- 字符串(在双引号中)
- 逻辑值(true 或 false )
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON 数字
"status_code":200
JSON 字符串
"Name" : "mianmian"
JSON 逻辑值
"result":true
JSON 数组
"user":["mianmian","ll123","zzzaaa"]
JSON 对象
JSON 对象在花括号中书写: 对象可以包含多个键/值对:
{ "firstName":"John" , "lastName":"Doe" }
Tips:在接口测试过程中,一般都是返回 JSON 对象类型。
JSON 数据嵌套
比如在数组中含多个对象:
{ "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] }
在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。
JSON 数据解析
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个方法:
- json.dumps(): 将 python 数据转化为 Json 数据
- json.loads(): 将 json 数据类型转为 Python 数据类型
json.dumps()
将 python 数据转化为 Json 数据 json_dumps.py
import json data={'id':1,'name':'mianmian','password':'123456'} print(type(data)) json_str=json.dumps(data) print(type(json_str)) print(json_str) 输出结果: <class 'dict'> <class 'str'> {"password": "123456", "id": 1, "name": "mianmian"}
json.loads()
将 json 数据类型转为 Python 数据类型 json_loads.py
import json json_str='{"id":1,"name":"mianmina","password":"123456"}' data=json.loads(json_str) print(type(json_str)) print(type(data)) print(data) print(data['id']) print(data['name']) 输出结果: <class 'str'> <class 'dict'> {'name': 'mianmina', 'password': '123456', 'id': 1} 1 mianmina
Json 文件处理
有时我们可能需要将 JSON 数据写入到文件,或者从 Json 数据文件读取数据
# 写入 JSON 数据到文件 with open('data.json', 'w') as f: json.dump(data, f) # 读取 JSON数据文件 with open('data.json', 'r') as f: data = json.load(f)