gpt4 book ai didi

json - 如何使用 jq 中的流选项从 JSON 文件中检索键和值

转载 作者:行者123 更新时间:2023-12-01 06:51:02 27 4
gpt4 key购买 nike

我有一个结构如下的 json 文件:

 {
"A": [{
"B": {
"C": [{
"D": {
"applicationNumberText": {
"value": "15570075",
"electronicText": "15570075"
},
"date": "2018-10-01",
"app": "Utility"
}
}]
}
}]
}

现在我想检索 electronicText 值。一种方法是使用如下索引

jq --stream 'select(.[0][1] == "A" and .[0][2] == "B" and .[0][3] == "C") | .[1]'

但在某些情况下结构可能会有所不同,所以我想通过键值而不是索引来引用。我尝试了以下方法,但它不起作用

cat file.json | jq --stream 'select(.A|.[]. B. C|.[]. D.applicationNumberText)'

所以我想在不使用索引的情况下检索 electronicText 键。

注意:我想对大型 JSON 文件使用 stream 选项。

最佳答案

如果数组的索引是固定的,你可以使用这个过滤器:

jq '.A[0].B.C[0].D.applicationNumberText.electronicText' file

要提取所有 electronicText 字段,您可以使用:

jq '.A[].B.C[].D.applicationNumberText.electronicText' file

如果你想使用 jq stream fashion(虽然不清楚为什么),你可以使用这个:

jq --stream 'select(.[0]|contains(["electronicText"]))|.[1]//empty'

这将在字符串 electronicText 的键路径中查找,如果找到,则获取其关联值。 //empty是过滤掉没有值的path数组。

关于json - 如何使用 jq 中的流选项从 JSON 文件中检索键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53256388/

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