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 |
3
Answers
A semi hard-coded solution could look like:
map()
) overto_entires
to usekey
andvalue
|
join()
those lines with a newline (n
)The above will output:
Which renders as
JqPlay Demo
Very slightly less hard coded than @0stone0’s answer:
Gives me:
Looks right in github preview:
convert jq output to csv and then display result with csview utility