I am trying to convert the below json to a markdown table(GitHub docs(.md file)), however not able to do so.
{
"service_1":"abc-endpoint.vpce.amazonaws.com",
"service_2":"def-endpoint.vpce.amazonaws.com",
"service_3":"xyz-endpoint.vpce.amazonaws.com"
}
Command I tried:
cat json_file | jq -r '{"NAME": "ENDPOINT_ID"} + . | to_entries[] | "\(.key)\t\(.value)"'
Output I am getting:
NAME ENDPOINT-ID
service_1 abc-endpoint.vpce.amazonaws.com
service_2 def-endpoint.vpce.amazonaws.com
service_3 xyz-endpoint.vpce.amazonaws.com
The above output when committed to README.md github file losses its indentation(spaces) and is not properly divided into rows and columns, leading to bad visualization.
Link that I went through:
https://www.markdownguide.org/extended-syntax/#tables
Expected output:
| NAME | ENDPOINT_ID |
| -------- | -------- |
| service_1 | abc-endpoint.vpce.amazonaws.com |
| service_2 | def-endpoint.vpce.amazonaws.com |
| service_3 | xyz-endpoint.vpce.amazonaws.com |
A semi hard-coded solution could look like:
"|NAME|ENDPOINT_ID|\n|------|------|\n" +
(to_entries | map("|\(.key)|\(.value)|") | join("\n"))
map()
) over to_entires
to use key
and value
|
join()
those lines with a newline (\n
)The above will output:
|NAME|ENDPOINT_ID|
|------|------|
|service_1|abc-endpoint.vpce.amazonaws.com|
|service_2|def-endpoint.vpce.amazonaws.com|
|service_3|xyz-endpoint.vpce.amazonaws.com|
Which renders as
NAME | ENDPOINT_ID |
---|---|
service_1 | abc-endpoint.vpce.amazonaws.com |
service_2 | def-endpoint.vpce.amazonaws.com |
service_3 | xyz-endpoint.vpce.amazonaws.com |