jq進行json數據解析

jq進行json數據解析

學習了:https://www.jianshu.com/p/6de3cfdbdb0e

https://blog.csdn.net/u011641885/article/details/45559031

https://www.cnblogs.com/tinywan/p/7684414.html

https://stedolan.github.io/jq/manual/. 幫助文檔

使用man可以查看詳細幫助,太強大了;

➜  yiqing cat a.json|jq '.'
{
  "another": 1,
  "all": {
    "a0": {
      "a1": {
        "a2": [
          {
            "a3": "a3",
            "lng": 1,
            "lat": 2
          },
          {
            "a32": "a32",
            "lng": 1,
            "lat": 2
          }
        ]
      }
    },
    "b0": {
      "b1": {
        "b2": [
          {
            "b3": "b3",
            "lng": 1,
            "lat": 2
          },
          {
            "b32": "b32",
            "lng": 1,
            "lat": 2
          }
        ]
      }
    }
  }
}

a獲取多個屬性,逗號分隔,可以列出不包含的

➜  yiqing cat a.json|jq '.all|.a0,.b0,.c0'
{
  "a1": {
    "a2": [
      {
        "a3": "a3",
        "lng": 1,
        "lat": 2
      },
      {
        "a32": "a32",
        "lng": 1,
        "lat": 2
      }
    ]
  }
}
{
  "b1": {
    "b2": [
      {
        "b3": "b3",
        "lng": 1,
        "lat": 2
      },
      {
        "b32": "b32",
        "lng": 1,
        "lat": 2
      }
    ]
  }
}

b可以直接按照數據來進行過濾

➜  yiqing cat a.json|jq '.all|.[]'
{
  "a1": {
    "a2": [
      {
        "a3": "a3",
        "lng": 1,
        "lat": 2
      },
      {
        "a32": "a32",
        "lng": 1,
        "lat": 2
      }
    ]
  }
}
{
  "b1": {
    "b2": [
      {
        "b3": "b3",
        "lng": 1,
        "lat": 2
      },
      {
        "b32": "b32",
        "lng": 1,
        "lat": 2
      }
    ]
  }
}

c不停的按照數據進行過濾,可以實現對象不停的拆解

➜  yiqing cat a.json|jq '.all|.[]|.[]|.[]'
[
  {
    "a3": "a3",
    "lng": 1,
    "lat": 2
  },
  {
    "a32": "a32",
    "lng": 1,
    "lat": 2
  }
]
[
  {
    "b3": "b3",
    "lng": 1,
    "lat": 2
  },
  {
    "b32": "b32",
    "lng": 1,
    "lat": 2
  }
]

d拆解成一個一個對象

➜  yiqing cat a.json|jq '.all|.[]|.[]|.[]|.[]'
{
  "a3": "a3",
  "lng": 1,
  "lat": 2
}
{
  "a32": "a32",
  "lng": 1,
  "lat": 2
}
{
  "b3": "b3",
  "lng": 1,
  "lat": 2
}
{
  "b32": "b32",
  "lng": 1,
  "lat": 2
}

e加上括號有可以變爲數組

➜  yiqing cat a.json|jq '[.all|.[]|.[]|.[]|.[]]'
[
  {
    "a3": "a3",
    "lng": 1,
    "lat": 2
  },
  {
    "a32": "a32",
    "lng": 1,
    "lat": 2
  },
  {
    "b3": "b3",
    "lng": 1,
    "lat": 2
  },
  {
    "b32": "b32",
    "lng": 1,
    "lat": 2
  }
]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章