zoukankan      html  css  js  c++  java
  • 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
      }
    ]
  • 相关阅读:
    python实现从生成器中取固定角标的元素
    python-高阶函数
    git学习手册
    python批量进行文件修改操作
    python第一站
    LoadRunner,一个简单的例子
    python3中urllib2的问题
    gitlab 随笔
    sed 删除文本
    sed 修改文本
  • 原文地址:https://www.cnblogs.com/stono/p/12293823.html
Copyright © 2011-2022 走看看