2016-05-20 8 views
0

Ich habe ein großes vorhandenes Json-Objekt und ich würde gerne einen neuen Schlüssel/Wert zum Objekt hinzufügen, wo der Wert sehr groß sein kann (viele K).jq hinzufügen großen Wert zu bestehenden JSON

Mit jq Ich kann etwas tun:

echo $item | jq '. + {readme:"big blob of text"}'

Gibt es einen guten Weg, big blob of text mit einer Schale oder jq Variable zu ersetzen?

Antwort

2

Das folgende Beispiel veranschaulicht, was getan werden kann, wenn Ihre Version von jq "--argjson" unterstützt. Ähnliche Dinge können mit --arg und --argfile gemacht werden.

#!/bin/bash 

function bigblob { 
cat <<EOF 
big blob of text 
EOF 
} 

item='{"a": "a"}' 

bigblob | jq -R --argjson item "$item" '$item + {"readme": .}' 

Ergebnis:

{ 
    "a": "a", 
    "readme": "big blob of text" 
} 
+0

Mein bashfu schwach ist, danke! –

Verwandte Themen