繁体   English   中英

当bash jq解析json时,返回多行数组,但是,我如何使用此结果?

[英]When bash jq parsing json ,return a multi-line array but, how can I use this result?

当我使用命令时:

ids=`cat $myfilename | jq -r "[.data[].id]"`

然后像这样返回:

[
  "PC_PACX_0017",
  "GS_ZGRS_0001",
  "PC_PACX_0018",
  "GS_ZGRS_0002",
  "AB_HXJK_0002",
  "AB_HXJK_0001",
  "TK_TKZX_0011",
  "TL_TBAL_0002",
  "TL_TBAL_0001",
  "TS_TKRS_0001",
  "TS_TKRS_0002",
  "TS_TKRS_0003"
]

但它不能被视为数组,长度只能是1。如何使用此结果?

数组不同于多行字符串。 假设您的数据中没有换行符,请将您的jq调用更改为

jq -r '[.data[].id]|.[]'  # Could be simplified to '.data[].id'

并使用readArraybash 4或更高版本)填充适当的数组。

readArray -t ids < <(jq -r '[.data[].id]|.[]' "$myfilename")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM