在前面的文章中,我們已經(jīng)介紹了 JSON 命令的基本用法。在這篇文章中,我們將繼續(xù)探討 JSON 命令的進(jìn)階用法。
首先,我們來(lái)看一下如何使用 JSON 命令格式化 JSON 數(shù)據(jù)。
$ cat example.json | json_pp { "name" : "John Smith", "age" : 34, "address" : { "street" : "123 Main St.", "city" : "Springfield", "state" : "IL" }, "phoneNumbers" : [ { "type" : "home", "number" : "555-555-1234" }, { "type" : "work", "number" : "555-555-5678" } ] }
在上面的例子中,我們使用了 `json_pp` 命令來(lái)格式化 example.json 文件中的 JSON 數(shù)據(jù)。運(yùn)行這個(gè)命令之后,我們可以看到格式化之后的結(jié)果。從結(jié)果中可以看到,每個(gè) JSON 對(duì)象、數(shù)組和鍵值對(duì)都被縮進(jìn)了,并且每個(gè)元素之間都有一個(gè)換行符。
接下來(lái),我們將介紹如何使用 `json_pointer` 命令定位 JSON 數(shù)據(jù)中的某個(gè)元素。
$ cat example.json | json_pointer /address/city "Springfield"
在上面的例子中,我們使用了 `json_pointer` 命令來(lái)定位 example.json 文件中的 `address.city` 元素。運(yùn)行這個(gè)命令之后,我們可以看到程序輸出了這個(gè)元素的值。
最后,我們將介紹如何使用 `json_reformat` 命令將 JSON 數(shù)據(jù)轉(zhuǎn)換為 CSV 格式。
$ cat example.json | json_reformat -p | tr -d '\n' | tr ',' '\n' "name","age","address.street","address.city","address.state","phoneNumbers.type","phoneNumbers.number" "John Smith","34","123 Main St.","Springfield","IL","home","555-555-1234" "John Smith","34","123 Main St.","Springfield","IL","work","555-555-5678"
在上面的例子中,我們使用了 `json_reformat` 命令將 example.json 文件中的 JSON 數(shù)據(jù)轉(zhuǎn)換為 CSV 格式。運(yùn)行這個(gè)命令之后,我們可以看到程序輸出了 `name`、`age`、`address.street`、`address.city`、`address.state`、`phoneNumbers.type` 和 `phoneNumbers.number` 這七個(gè)元素,并將它們轉(zhuǎn)換為 CSV 格式的數(shù)據(jù)。
以上就是 JSON 命令的進(jìn)階用法,希望對(duì)大家有所幫助。