原来解析 JSON 数据有这么简单的方法

科技   2024-11-20 17:11   江苏  
有的时候想解析 JSON 结构的数据,比如原始数据是这样的。

{
"users": [
{
"name": "Alice",
"age": 25,
"city": "New York"
},
{
"name": "Bob",
"age": 30,
"city": "San Francisco"
}
]
}

我想把里面的所有 name 取出来,变成一行一行的样子。

Alice
Bob

我之前一般的做法是找个网站解析 JSON 数据,还总是半天找不到合适的。或者放到 Idea 里用列编辑的方式删除前后的列,然后再去掉回车,非常之恶心。而且这个东西是个非常简单且常见的需求,给它专门写一段程序解析又感觉不划算。

正好前几天让 ChatGPT 帮我写了个程序,自动查找 k8s 里面的一些资源并且做处理。由于 k8s 里很多资源查找出来之后都可以是 json 格式的数据,所以看到 ChatGPT 帮我写了个非常简洁有效的 shell 程序,有一行代码是这样的。

这里有个 jq 命令引起了我的注意,然后我惊讶地发现原来这个就是处理 JSON 数据的一个很好用的命令,居然我在今天才知道,简直太菜了。

比如刚刚的需求,就可以用 jq 轻松完成,我又举例了几个常见用法,应该看下示例就秒懂了。

jq 还有许多其他用法,基本你能想到的 json 的简单处理它都能搞定了。再配合上管道,shell 脚本就能很好地处理各种 json 数据任务了。同时因为一些 API 接口也都是 json 格式交互的,在搭建一些本地的小工作留处理一些 AI 任务的时候,这个小工具也是特别好用。

有同学说不会怎么办?直接问 AI 就好了。就算你从来没写过代码,也不会描述这里的需求,只需要把原始数据格式和你最终想要的格式告诉 AI,jq 脚本就能给你写好了。

你看,通过问 AI 我又了解了原来 jq 也不用非得写成

cat data.json | jq '.users[].name'

直接

jq '.users[].name' data.json

也是可以的。

但无所谓啦,反正以后这些工作都交给 AI 来做了,对我们来说,知道有 jq 这个工具可以做这件事,远比 jq 具体怎么用要重要。

有的时候我问 AI 一些问题,也是想从它的回答中得到一些灵感,比较搜索引擎只能搜索类似「jq 命令怎么使用」,却不能直接都给它一个需求让它帮我寻找工具。

往期推荐

4 种 MySQL 同步 ES 方案,yyds!

为什么很多人喜欢重装系统?

只因把 https 改成 http,带宽减少了 70%!

那些年,我们追过的代码:BASIC

Java多次启动一个线程究竟会发生什么?程序到底会不会崩?大部分程序员理解错误!!

喜大普奔~当年用不起天天找破解版的收费软件现在免费了!!!

操作系统是怎样一步步接收键盘按键的?

这里有最新前沿技术资讯、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦


码小辫
用堆栈的方式来学习技术,用遍历的方法来获取资料,用AI的思路考虑人生……码农的AI世界、BUG的程序员人生……hello world!
 最新文章