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
      }
    ]
  • 相关阅读:
    KVM安装配置
    cobbler配置解析
    denyhosts配置详解
    Rsync+sersync实现数据实时同步
    Linux启动提示Kernel panic
    oracle常用的数据字典
    Cachefiled
    from __future__ import division
    Java Map用法
    CCF系列之窗口(201403-2)
  • 原文地址:https://www.cnblogs.com/stono/p/12293823.html
Copyright © 2011-2022 走看看