我输入的JSON格式为:
{
"a": "apple",
"b": "banana",
"c": 5,
"d": ["this", "is", "an", "array"],
"e": false
}
我想要的是:
a="apple"
b="banana"
c=5
d=["this", "is", "an", "array"]
e=false
请注意,只有输入JSON中的字符串在输出中带有引号。
使用jq -r 'to_entries[] | "\(.key)=\"\(.value)\""'
可以生成类似
a="apple"
b="banana"
c="5"
d="["this", "is", "an", "array"]"
e="false"
所以我的问题是:
答案 0 :(得分:2)
您可以使用type
(manual entry)测试.value是否为字符串。
jq -r 'to_entries[]
| "\(.key) = \( .value
| if type == "string"
then "\"\(.)\""
else .
end
)"'