zoukankan      html  css  js  c++  java
  • 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. 参考

  • 相关阅读:
    一个合格的程序员应该读过哪些书
    一个程序员如何快速赚到一百万?
    如何创造财富?硅谷创业之父 Paul Graham 《黑客与画家》思维导图
    java 入门书籍(java7)
    活动预售和预热的目的
    活动策划
    店铺费率把控
    如何通过店铺数据分析店铺异常原因?
    刷单三大目的?如何安全、低成本、高效完成刷单
    活动报名技巧之——天天特卖
  • 原文地址:https://www.cnblogs.com/yueyun00/p/12267063.html
Copyright © 2011-2022 走看看