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) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM