Curl 與jq 發起json請求


1. 安裝

官網:https://stedolan.github.io/jq/download/
基本就是brew install、apt install、yum install之類的,很簡單

2. 常用操作

2.1 格式化json

直接請求,格式明顯不易讀

$ curl -s https://horizon.stellar.org/transactions?limit=1&order=desc
{"_links":{"next":{"href":"https://horizon.stellar.org/transactions?cursor=120624397026840576&limit=1&order=desc"},"prev":{"href":"https://horizon.stellar.org/transactions?cursor=120624397026840576&limit=1&order=asc"}},"_embedded":{"records":[{"memo":"MmFiOTViOTFmNzQ0MmUwY2EzY2I4NTIzZDIwYzFmNWE=","id":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e","paging_token":"120624397026840576","successful":true,"hash":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e","ledger":28085056,"created_at":"2020-02-05T13:01:24Z","source_account_sequence":"112094093760491433","fee_paid":100,"fee_charged":100,"max_fee":100,"operation_count":1,"result_xdr":"AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAA=","memo_type":"hash","valid_after":"1970-01-01T00:00:00Z"}]}}

使用jq格式化

$ curl -s https://horizon.stellar.org/transactions?limit=1&order=desc | jq 
{
    "_links":{
        "next":{
            "href":"https://horizon.stellar.org/transactions?cursor=120624397026840576&limit=1&order=desc"
        },
        "prev":{
            "href":"https://horizon.stellar.org/transactions?cursor=120624397026840576&limit=1&order=asc"
        }
    },
    "_embedded":{
        "records":[
            {
                "memo":"MmFiOTViOTFmNzQ0MmUwY2EzY2I4NTIzZDIwYzFmNWE=",
                "id":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e",
                "paging_token":"120624397026840576",
                "successful":true,
                "hash":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e",
                "ledger":28085056,
                "created_at":"2020-02-05T13:01:24Z",
                "source_account_sequence":"112094093760491433",
                "fee_paid":100,
                "fee_charged":100,
                "max_fee":100,
                "operation_count":1,
                "result_xdr":"AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAA=",
                "memo_type":"hash",
                "valid_after":"1970-01-01T00:00:00Z"
            }
        ]
    }
}

2.2 取指定字段的值

直接輸入字段,使用.嵌套訪問,例如要獲取records

$ curl -s https://horizon.stellar.org/transactions?limit=1&order=desc | jq ._embedded.records
[
            {
                "memo":"MmFiOTViOTFmNzQ0MmUwY2EzY2I4NTIzZDIwYzFmNWE=",
                "id":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e",
                "paging_token":"120624397026840576",
                "successful":true,
                "hash":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e",
                "ledger":28085056,
                "created_at":"2020-02-05T13:01:24Z",
                "source_account_sequence":"112094093760491433",
                "fee_paid":100,
                "fee_charged":100,
                "max_fee":100,
                "operation_count":1,
                "result_xdr":"AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAA=",
                "memo_type":"hash",
                "valid_after":"1970-01-01T00:00:00Z"
            }
]

2.3 過濾指定字段

使用一個json指定所有字段,如{memo, hash},獲取昨天的最高溫度如下

$ curl -s https://horizon.stellar.org/transactions?limit=1&order=desc | jq ._embedded.records | jq ".[0]" | jq "{memo, hash}"
{
  "memo":"MmFiOTViOTFmNzQ0MmUwY2EzY2I4NTIzZDIwYzFmNWE=",
  "hash":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e"
}

2.4 獲取多個字段的值

使用逗號獲取多個

$ curl -s https://horizon.stellar.org/transactions?limit=1&order=desc | jq "._embedded.records[0]" | jq ".memo, .hash"

"AaUJ0NXa2UE1j4QiOfgy5qqhD8oT8kWI9Cy4xfvb/u8="
"fc3e37d08c99496468f03adbb01f0c32b614f2423508489456c5a32157622036"

2.5 篩選數組

直接指定數組的索引即可

$ curl -s https://horizon.stellar.org/transactions?limit=1&order=desc| jq "._embedded.records" | jq ".[0, 9]"
{
                "memo":"MmFiOTViOTFmNzQ0MmUwY2EzY2I4NTIzZDIwYzFmNWE=",
                "id":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e",
                "paging_token":"120624397026840576",
                "successful":true,
                "hash":"da7dee6d1d9374b726e77e6aa321141cd22d679dc3d40ffdbb3cbfcbae93bd3e",
                "ledger":28085056,
                "created_at":"2020-02-05T13:01:24Z",
                "source_account_sequence":"112094093760491433",
                "fee_paid":100,
                "fee_charged":100,
                "max_fee":100,
                "operation_count":1,
                "result_xdr":"AAAAAAAAAGQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAA=",
                "memo_type":"hash",
                "valid_after":"1970-01-01T00:00:00Z"
}
...

3. 參考


免責聲明!

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



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