jsonbashvariablesinputjq

Can I pass a string variable to jq rather than passing a file?


I want to convert JSON string into an array in bash. The JSON string is passed to the bash script as an argument (it doesn't exist in a file).

Is there a way of achieving it without using some temp files?

Similarly to this:

script.sh

#! /bin/bash
json_data='{"key":"value"}'
jq '.key' $json_data

jq: error: Could not open file {key:value}: No such file or directory

Solution

  • I would suggest using a bash here string. e.g.

    jq '.key' <<< "$json_data"