1.6 KiB
Working with JSON
Yaml to Json
To convert output to json, use the --tojson
or `-j`
flag. This is supported by all commands. You can change the json output format by using the pretty print or indent flags. Note that due to the implementation of the JSON marshaller in GO, object keys will be sorted on output _[_https://golang.org/pkg/encoding/json/\#Marshal_](https://golang.org/pkg/encoding/json/#Marshal)_
.
Given a sample.yaml file of:
b:
c: 2
then
yq r -j sample.yaml
will output
{"b":{"c":2}}
To format the json:
yq r --prettyPrint -j sample.yaml
will yield
{
"b": {
"c": 2
}
}
Multiple matches
Each matching yaml node will be converted to json and printed out on a separate line. The prettyPrint and indent flags will still work too. ****
Given a sample.yaml file of:
bob:
c: 2
bab:
c: 5
then
yq r -j sample.yaml b*
will output
{"c":2}
{"c":5}
Json to Yaml
To read in json, just pass in a json file instead of yaml, it will just work - as json is a subset of yaml. However, you will probably want to pretty print the output to look more like an idiomatic yaml document.
e.g given a json file
{"a":"Easy! as one two three","b":{"c":2,"d":[3,4]}}
then
yq r --prettyPrint sample.json
will output
a: Easy! as one two three
b:
c: 2
d:
- 3
- 4