gpt4 book ai didi

json - 无法使用 jq 捕获元素的值

转载 作者:行者123 更新时间:2023-12-04 02:46:40 26 4
gpt4 key购买 nike

我正在尝试使用 jq 提取 dumpName 的内容,但它不起作用。我试图简化原始文件的结构,因为我无法在此处发布完整的详细信息。

我也想获取param2的内容。如果需要,可以将其收集在单独的 jq 语句中。

{
"get": {
"download": {
"ebR": true,
"detail": [
{
"downloadHost": "xxx.jgs.com",
"downloadURL": "xxx.jgs.com",
"dumpInfo": {
"dumpCategory": "Other",
"dumpContentType": "UNKNOWN",
"dumpId": test,
"dumpName": "name_of_dump",
"dumpSize": 1200,
"dumpStatus": "COMPLETED",
"dumpUploadDate": "date",
"vis": "who_see_it"
},
"datastore": [
{
"param1": "random_val",
"param2": "random_val"
},
{
"param1": "testtest",
"param2": "testtest"
}
],
"Info": {
"webpage": "test@test.com"
}
}
}
}
}

期望的输出:

name_of_dump
random_val
testtest

以前的尝试:

jq '.[] | .[]'   # gives section from { ebR
jq '.[] | .[] | .[]' # gives error:

是的jq: 错误 (at:399): 无法遍历字符串 ("http://www.. .)

jq '.[] | .[] | .[] | .dumpName'  # gives error:

jq: error (at :399): 无法用字符串“dumpName”索引 bool 值

谢谢。

最佳答案

您需要使用正确的对象/数组名称递归 JSON。使用普通的 .[] 符号不会让你实现这一目标

jq --raw-output '.get.download.detail[] | .dumpInfo.dumpName, .datastore[0].param1, .datastore[1].param1'

此外,输入的 JSON 在语法上无效。看这个jqplay URL它显示过滤器在运行时工作。

关于json - 无法使用 jq 捕获元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56988352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com