use jq to update json file
echo "$( jq '.address = "abcde"' test.json )" > test.json
use jq to update json file
echo "$( jq '.address = "abcde"' test.json )" > test.json
modify JSON values in place with jq
#!/bin/bash
if [ $# -lt 3 ]; then
echo ""
echo "This script requires jq to be installed."
echo "It will add or modify the specified key and value in the JSON file."
echo "Three arguments required: (1) key, (2) value, (3) json file to modify,"
echo "and optionally a 4th argument s (for string) if the value is a string and should be wrapped in double quotes e.g."
echo ""
echo "===================================="
echo ""
echo "In the following examples, Modality is the key, test.json is the file"
echo ""
echo "To add/modify a number value, e.g.,"
echo "jadd Modality 3 test.json"
echo ""
echo "To add/modify a boolean, e.g., "
echo "jadd Modality true test.json"
echo ""
echo "To add/modify an array of numbers, wrap the array in single quotes, e.g.,:"
echo "jadd Modality '[1,3,5]' test.json"
echo ""
echo "To add/modify an array of strings, wrap the array in single quotes and put the strings in double quotes, e.g.,"
echo 'jadd Modality '['"a"','"b"','"c"']' test.json'
echo ""
echo "To add/modify a string, add the 4th argument, s:"
echo "jadd Modality MRI jq_test.json s"
echo ""
echo "======================="
exit 1
elif [ $# -eq 3 ]; then
key=$1
value=$2
file=$3
# Add number or boolean or array using --argjson
# echo "Three arguments key=$key; value=$value; file=$file"
# jq '."'"$key"'"= '$value'' $file > tmp.$$.json && mv tmp.$$.json $file
jq --argjson val "$value" '."'"$key"'"=$val' "${file}" > tmp.$$.json && mv tmp.$$.json $file
elif [ $# -eq 4 ]; then
key=$1
value=$2
file=$3
string=$4
# Add a string using --arg
# echo "Four arguments key=$key; value=$value; file=$file; string=$string"
# jq '."'"$key"'"= "'"$value"'"' $file > tmp.$$.json && mv tmp.$$.json $file
jq --arg val "$value" '."'"$key"'"=$val' "${file}" > tmp.$$.json && mv tmp.$$.json $file
fi
Copyright © 2021 Codeinu
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems resetting your password contact us