我使用jq:
解析json文件np.uint8
它工作正常,但每次我必须输入数字.response [2] .text,.response [3] .text等。我想一次获得所有值(200个值)
但是当我这样做时:
jq .response[1].text file.json
它出错:无法用字符串“text”索引数字
该文件如下所示:
jq .response[].text file.json
答案 0 :(得分:6)
显然,数组中的一个项是字符串。如果你的jq支持“?”,那么有一种可能性就是使用它:
.response[].text?
另一种方法是明确检查类型,例如:
.response[] | objects | .text
又一种可能性:
.response[] | select(type=="object" and has("text")) | .text
如果您希望在没有“text”字段时拥有占位符值:
.response[] | if type=="object" and has("text") then .text else null end
因此,这实际上取决于您的要求以及您正在使用的jq版本。