You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将3个jq过滤器合并为单命令解析Google诗歌生成接口返回的JSON

合并jq命令实现方案

1. 取第一条带text字段的诗歌内容

直接将三次过滤逻辑合并到单个jq过滤器中,无需多次管道调用jq进程,命令如下:

echo "$verses" | jq -r '.verse | map(select(.text)) | first.text'

逻辑说明:

  • 第一步提取返回结果中的verse数组
  • 用map(select(.text))过滤出所有包含text字段的有效元素
  • 用first取过滤后数组的第一个元素,直接提取text字段的值
  • -r参数直接输出原始文本,无需额外转义处理

2. 随机选取一条带text字段的诗歌内容

利用jq内置的random函数生成随机索引,实现随机选取,同时兼容空数组的异常场景,命令如下:

echo "$verses" | jq -r '.verse | map(select(.text)) | if length > 0 then .[length * random | floor].text else empty end'

逻辑说明:

  • 前两步和取第一条的逻辑一致,先筛选出所有带text字段的有效元素
  • 先判断筛选后的数组长度是否大于0,避免空数组取值报错
  • 用length * random | floor生成合法的随机数组索引,取对应元素的text字段

内容的提问来源于stack exchange,提问作者Fohroer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 09:36:05