Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux命令行解析JSON

在Linux命令行中解析JSON的详细步骤

作者:鸠摩智首席音效师

JQ 是一个通用的 Linux 命令行 JSON 处理器,它允许开发人员快速地解析、过滤和转换 JSON 数据,在本文中,我们将介绍常用的 JQ 命令,展示如何简化 JSON 处理任务,需要的朋友可以参考下

前言

JQ 是一个通用的 Linux 命令行 JSON 处理器,它允许开发人员快速地解析、过滤和转换 JSON 数据。在本文中,我们将介绍常用的 JQ 命令,展示如何简化 JSON 处理任务。

示例 JSON 文件内容

您可以将以下示例数据保存在名为 input.json 的文件中。这个 JSON 数据表示具有各自姓名、年龄、国家和地址的人员数组。

[
  {
    "name": "Alice",
    "age": 35,
    "country": "USA",
    "address": {
      "street": "123 Main St",
      "city": "New York",
      "state": "NY",
      "zip": "10001"
    }
  },
  {
    "name": "Bob",
    "age": 28,
    "country": "Canada",
    "address": {
      "street": "456 Maple Ave",
      "city": "Toronto",
      "province": "ON",
      "postal_code": "M5V 1A1"
    }
  },
  {
    "name": "Charlie",
    "age": 42,
    "country": "USA",
    "address": {
      "street": "789 Oak St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94102"
    }
  },
  {
    "name": "David",
    "age": 23,
    "country": "Canada",
    "address": {
      "street": "321 Pine St",
      "city": "Vancouver",
      "province": "BC",
      "postal_code": "V6B 2P4"
    }
  }
]

使用示例

1. Pretty Print JSON Data

要美观地打印 JSON 数据,只需将 JSON 文件传递给 JQ 命令,后跟一个句点(“.”):

jq '.' input.json

2. Retrieve a Specific JSON Key

要从 JSON 对象中提取特定键的值,使用以下语法:

jq '.key' input.json

例如,要提取 name 键的值,使用:

jq '.name' input.json

3. Access Nested JSON Values

要访问嵌套的 JSON 值,使用点(“.”)表示法:

jq '.key1.key2.key3' input.json

例如,要提取嵌套在address 下的 city 键的值,使用:

jq '.address.city' input.json

4. Iterate Over JSON Arrays

使用方括号(“[]”)来迭代 JSON 数组:

jq '.[]' input.json

要从数组中的每个对象提取特定的键,使用 pipe(“|”)操作符:

jq '.[] | .key' input.json

5. Filter JSON Data

如果需要根据特定条件过滤 JSON 数据,可以使用 select 函数:

jq '.[] | select(.key == "value")' input.json

例如,要过滤数组中年龄大于 30 的对象,使用:

jq '.[] | select(.age > 30)' input.json

6. Map and Transform JSON Data

要映射和转换 JSON 数据,使用大括号(“{}”):

jq '.[] | {key1: .key1, key2: .key2}' input.json

例如,要创建一个只有 nameage 键的 JSON 对象,使用:

jq '.[] | {name: .name, age: .age}' input.json

7. Combine Multiple JSON Files

要合并两个 JSON 文件,使用 “*” 操作符:

jq -s '.[0] * .[1]' file1.json file2.json

8. Perform Arithmetic Operations

JQ 可以对数值 JSON 值执行算术运算:

jq '.number1 + .number2' input.json

9. Sort JSON Data

要根据特定键对 JSON 数据进行排序,使用 sort_by 函数:

jq '.[] | sort_by(.key)' input.json

| 1 | jq’.[] | sort_by(.key)'input.json |
| — | ------------------------------------------- |

例如,按照 age 键对对象数组进行排序,请使用:

jq '.[] | sort_by(.age)' input.json

10. Group JSON Data

要根据特定键对 JSON 数据进行分组,使用 group_by 函数:

jq 'group_by(.key)' input.json

例如,按照 country 键对对象数组进行分组,请使用:

jq 'group_by(.country)' input.json

到此这篇关于在Linux命令行中解析JSON的详细步骤的文章就介绍到这了,更多相关Linux命令行解析JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文