sfdx 差异 |三通结果.json ;
在这里,我得到 json 格式的结果/响应,并将其添加到 result.json 文件中。下面是我得到的 json
{
"status": 3,
"result": {
"source": {
"type": "folder",
"origin": "/source"
},
"target": {
"type": "folder",
"origin": "/target"
},
"difs": [
{
"type": "In Progress",
"entity": "Phone",
"result": "added"
},
{
"type": "Completed",
"entity": "SMS",
"result": "added"
},
{
"type": "Scheduled",
"entity": "Web",
"result": "added"
}
]
}
}
我们有什么办法可以做到这一点。请帮忙,因为我对 shell 脚本很陌生
答案1
给定当前问题中的 JSON 文档,以下jq
命令会将其转换为与您显示的表格格式相对应的 CSV 形式,包括表格标题:
jq -r '["Status","Value","Result"],
(.result.difs[] | [.type,.entity,.result]) | @csv' file.json
首先为我们需要转换为 CSV 的每一行创建一个值数组,然后使用内置@csv
运算符创建正确引用的 CSV 数据。
给定示例 JSON 文档,输出将是
"Status","Value","Result"
"In Progress","Phone","added"
"Completed","SMS","added"
"Scheduled","Web","added"
稍后可以将其导入到您想要用来创建表格的任何电子表格程序中。
cvslook
使用命令行 CSV 解析工具的工具包对此进行后处理csvkit
,您可以获得该表的 Markdown 变体:
jq -r '["Status","Value","Result"],
(.result.difs[] | [.type,.entity,.result]) | @csv' file.json |
csvlook
这将输出
| Status | Value | Result |
| ----------- | ----- | ------ |
| In Progress | Phone | added |
| Completed | SMS | added |
| Scheduled | Web | added |
当渲染为 markdown 时,它看起来像
地位 | 价值 | 结果 |
---|---|---|
进行中 | 电话 | 添加 |
完全的 | 短信 | 添加 |
预定 | 网络 | 添加 |