ich als JSON-String bekam:, wie ich Variable in jq verwenden (MacOS, Shell)
{
"id": 3397,
"title": "title_1"
}
{
"id": 3396,
"title": "title_2"
}
, was ich will ist, jede id
in einer Schleife tun bekommen, ich den folgenden Code verwenden:
for ((i = 0; i < requestCount; i++)); do
requestId=$(echo $jsonString[$i] | jq '.id')
echo requestId;
done
aber es funktioniert nicht, ich glaube, die Art, wie ich verwende Variable falsch ist, kann ich nichts nützlich hier jq finden.
Es ist nicht klar, welche Form der Eingabe, die Sie haben. Ist 'jsonString' ein tatsächliches Shell-Array mit einem JSON-Element pro Objekt? 'jq' kann bereits selbst iterieren. Wenn Sie also ein richtiges JSON-Array wie' [{...}, {...}] 'hätten, würden Sie einfach etwas wie 'echo" $ json "| verwenden jq '.id''. – chepner
hast du recht wenn ich alle ID einfach ausgeben möchte. Aber ich muss jede ID im nächsten Befehl in dieser Schleife verwenden. –