我不明白to_entriesjq 是如何工作的。
我有以下 json 有效负载payload.json
{"REGION":"us-east-1","EMAIL":"contain","UPDATE":1}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为=分隔密钥对,如下所示;
REGION=us-east-1
EMAIL=contain
UPDATE=1
Run Code Online (Sandbox Code Playgroud)
我正在使用
jq -r 'to_entries | .[] | .key + "=" + .value' < payload.json
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误
jq: error (at <stdin>:0): string ("UPDATE=") and number (1) cannot be added
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,问题在于更新值是一个数字,而不是一个字符串(即,它们的类型不匹配是一个问题),所以我尝试了以下操作,都出现了相同的错误;
string interpolation:
jq -r 'to_entries | .[] | (.key) + "=" + (.value)' < payload.json
tostring:
jq -r 'to_entries | .[] | .key + "=" + .value|tostring' < payload.json
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
我缺少什么?
一对括号:
.key + "=" + ( .value|tostring )
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用字符串插值,例如
"\(.key)=\(.value)"
Run Code Online (Sandbox Code Playgroud)