json - jq to_entries 字符串和数字不能加
问题描述
我不明白to_entries
jq 是如何工作的。
我有以下 json 有效负载payload.json
{"REGION":"us-east-1","EMAIL":"contain","UPDATE":1}
我想将其转换为=
分隔的密钥对,就像这样;
REGION=us-east-1
EMAIL=contain
UPDATE=1
我正在使用
jq -r 'to_entries | .[] | .key + "=" + .value' < payload.json
但我得到一个错误
jq: error (at <stdin>:0): string ("UPDATE=") and number (1) cannot be added
如果我理解正确,问题是更新值是一个数字,而不是一个字符串(即,让它们不匹配类型是一个问题)所以我尝试了以下,两者都出现相同的错误;
string interpolation:
jq -r 'to_entries | .[] | (.key) + "=" + (.value)' < payload.json
tostring:
jq -r 'to_entries | .[] | .key + "=" + .value|tostring' < payload.json
我错过了什么?
解决方案
我错过了什么?
一对括号:
.key + "=" + ( .value|tostring )
或者,您可以使用字符串插值,例如
"\(.key)=\(.value)"
推荐阅读
- python - django中如何解析嵌套的json数据,如果json数据有嵌套数据,如何一一读取?
- windows - 如何将文本框从 Word 文档复制/粘贴到 PDF 文件?
- html - “renderer.setAttribute()”不适用于 matTooltip
- postgresql - postgresql order by和limit,同一条记录出现在多个页面
- c# - 无法使用 Azure signalR 加载类型 MessagePack
- javascript - 创建一个仅接受 0-9 的文本框,并通过为每个数字添加“1”使这些数字出现在另一个文本框中
- angular - Angular - 带有选项卡视图的启动对话框,具有简单的引导表单,不会自动聚焦到每个选项卡表单
- c# - 删除控制字符但保留 ½ 个字符等
- c# - GridSplitter 与 WindowsFormsHost 的使用。比例尺寸问题 (*)
- couchbase - Couchbase 索引建议