it编程 > 编程语言 > Javascript

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

55人参与 2025-11-24 Javascript

前言

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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

Centos7 ifconfig不显示IP地址解决方案分析

11-24

解决虚拟机输入IP addr不显示ip问题

11-24

CentOS虚拟机无法显示本地IP的问题及解决方案

11-24

requests处理token鉴权接口和jsonpath使用方式

11-24

@DateTimeFormat和@JsonFormat注解的用法及说明

11-21

JavaScript装饰器从基础到实战教程

11-19

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论