最近學校做項目,項目需求中要求我們按照json文件的內容對流量進行處理,這篇文章簡單記錄一下json的結構和內容。
1.什么是json?
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易於人閱讀和編寫。同時也易於機器解析和生成。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。 JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數據交換語言。
總結一下就是:
1. JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation)
2. JSON 是輕量級的文本數據交換格式
3. JSON 獨立於語言
4. JSON 具有自我描述性,更易理解
5. JSON 使用 JavaScript 語法來描述數據對象,但是 JSON 仍然獨立於語言和平台。JSON 解析器和 JSON 庫支持許多不同的編程語言。
2.json的基本數據類型
- 數值:十進制數,不能有前導0,可以為負數,可以有小數部分。還可以用
e
或者E
表示指數部分。不能包含非數,如NaN。不區分整數與浮點數。JavaScript用雙精度浮點數表示所有數值。 - 字符串:以雙引號" "括起來的零個或多個Unicode碼位。支持反斜杠開始的轉義字符序列。
- 布爾值:表示為
true
或者false
。 - 數組(array):有序的零個或者多個值。每個值可以為任意類型。序列表使用方括號
[
,]
括起來。元素之間用逗號,
分割。形如:[value, value]
- 對象(object):一個無序的“鍵-值對”(pair),其中鍵是字符串。建議但不強制要求對象中的鍵是獨一無二的。對象以花括號
{
開始,並以}
結束。鍵-值對之間使用逗號分隔。鍵與值之間用冒號:
分割。 - null類型:值寫為
null
json文件格式很簡單,我覺得json格式和PHP、java序列化結果有點類似,比如key和value中間都用 ":" 連接,當然json比較簡單,並沒有序列化那么復雜,格式只有兩種:
1.鍵值對
對象是一個無序的鍵值對集合,一個對象以 "{" 開始, "}" 結束。每一個名稱(key)后跟一個 ":" ; 鍵值對之間使用 "," 分隔。
2.數組
數組是值(value)的有序集合。一個數組以 "[" 開始, "]" 結束。值之間使用 "," 分隔。
示例:
{ "TEST":[{ "pkg_no":0, "offset":0, "content":"a0a8", "protocol":"udp" }, { "pkg_no":1, "offset":2, "content":"be2c1f" }] }
3.json數據讀取和寫入
使用python就可以很方便的讀取json文件的數據和將數據寫入json文件中。
# 寫入 JSON 數據 with open('data.json', 'w') as f: json.dump(data, f) # 讀取數據 with open('data.json', 'r') as f: data = json.load(f)