Mit dem folgenden jq-Befehl und Json:
jq '.[]|[.string,.number]|join(": ")' <<< '
[
{
"number": 3,
"string": "threee"
},
{
"number": 7,
"string": "seven"
}
]
'
Ich versuche, die Ausgabe wie folgt zu formatieren:
three: 3
seven: 7
Leider führt mein Versuch zu folgendem Fehler:
jq: error: string und number können nicht hinzugefügt werden
Wie konvertiere ich die Zahl in einen String, damit beide verbunden werden können?
Ein alternatives und wohl intuitiveres Format ist:
jq '.[] | .string + ": " + (.number|tostring)' <<< ...
Erwähnenswert ist die Notwendigkeit von Parens
.number|tostring
.quelle
Für solche einfachen Fall String Interpolation ‚s implizite Casting - String wird es tun:
.[] | "\( .string ): \( .number )"
Sehen Sie es in Aktion auf jq‣play .
quelle
Verwenden Sie den Opearator 'map_values', um Objekte zu ändern
Beispiel
Ausgabe
quelle