linux 操做 json文件

Linux 下 操做 json 文件神器 jqchrome

 jqjson

yum install jq -y

查看一個 file.json 格式文件
# jq . file.json

JSON
(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。
簡潔和清晰的層次結構使得 JSON 成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提高網絡傳輸效率。數組

JSON 語法格式:
JSON的結構基於這兩點: "鍵/值對" ,
在不一樣的語言中,它能夠被理解爲對象(object),記錄(record),結構(struct),字典(dictionary),哈希表(hash table),鍵列表(keyed list)等 .
值的有序列表 多數語言中被理解爲數組(array)

 json 基礎結構說明網絡

JSON的基礎結構說明:
對象是屬性、值的集合。一個對象開始與」{」 ,結束於」}」。每個屬性名和值間用」:」分隔。每一個屬性間用」,」分隔。 值能夠是字符串,數字,邏輯值,數組,對象,
null。 數字:整數或浮點數 字符串:在雙引號中 邏輯符:true和false 數組:在方括號中 對象:在花括號中 null: 表明空

JSON 鍵/值對spa

JSON 鍵值對是用來保存 JS 對象的一種方式,和 JS 對象的寫法也大同小異,鍵/值對組合中的鍵名寫在前面並用雙引號 "" 包裹,使用冒號 : 分隔,而後緊接着值:
{"firstName": "Json"}
這很容易理解,等價於這條 JavaScript 語句:
{firstName : "Json"}

JSON 與 JS 對象的關係
不少人搞不清楚 JSON 和 Js 對象的關係,甚至連誰是誰都不清楚。其實,能夠這麼理解:命令行

JSON 是 JS 對象的字符串表示法,它使用文本表示一個 JS 對象的信息,本質是一個字符串。
如: var obj = {a: 'Hello', b: 'World'}; //這是一個對象,注意鍵名也是能夠使用引號包裹的
var json = '{"a": "Hello", "b": "World"}'; //這是一個 JSON 字符串,本質是一個字符串

JSON 和 JS 對象互轉 要實現從對象轉換爲 JSON 字符串,使用 JSON.stringify() 方法: var json = JSON.stringify({a: 'Hello', b: 'World'}); //結果是 '{"a": "Hello", "b": "World"}'
要實現從 JSON 轉換爲對象,使用 JSON.parse() 方法: var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //結果是 {a: 'Hello', b: 'World'}

jq 命令容許直接在命令行下對JSON進行操做,包括分片、過濾、轉換。 code

jq 命令的格式:

jq [options] filter [files]
**options:**
--version:輸出jq的版本信息並退出
--slurp/-s:讀入整個輸入流到一個數組。
--raw-input/-R:不做爲JSON解析,將每一行的文本做爲字符串輸出到屏幕。
--null-input/ -n:不讀取任何輸入,過濾器運行使用null做爲輸入。通常用做從頭構建JSON數據。
--compact-output /-c:使輸出緊湊,而不是把每個JSON對象輸出在一行。
--colour-output / -C:打開顏色顯示
--monochrome-output / -M:關閉顏色顯示

--ascii-output /-a:指定輸出格式爲ASCII

-raw-output /-r :若是過濾的結果是一個字符串,那麼直接寫到標準輸出(去掉字符串的引號)

**filter:**
. : 默認輸出
.foo: 輸出指定屬性,foo表明屬性。
.[foo] :輸出指定數組元素。foo表明數組下標。
.[]:輸出指定數組中所有元素
, :指定多個屬性做爲過濾條件時,用逗號分隔
| : 將指定的數組元素中的某個屬性做爲過濾條件

**files:**
JOSN格式文件。
相關文章
相關標籤/搜索