json2yaml 2.0.0

json2yaml is .NET global tool for converting json to yaml

dotnet tool install --global json2yaml --version 2.0.0
This package contains a .NET Core Global Tool you can call from the shell/command line.

json2yaml

A simple tool to convert json to yaml.

json2yaml converter reads json input (from file, url endpoint or stdin) and produces converted yaml output (to file or stdout).

Installation


dotnet tool install --global json2yaml

By default .NET will choose which runtime to target.

You can use specific framework version if you want to run tool on different runtime:

dotnet tool install json2yaml --global --framework netcoreapp2.1

Usage


Usage: json2yaml [options]

Options:
  -i|--input                 Path to json input file. E.g. `-i:file.json` (or `-i="file.json"`). If empty value
                             provided (`-i`), converter will search current directory for *.json file.
  -u|--url                   HTTP endpoint to fetch json input from.
  --skip-content-type-check  Flag specifies if http response Content-Type header check can be skipped. Only in
                             effect when -u option is provided.
  -c|--console-output        Flag specifies if converted yaml should be printed directly to console. (In this
                             case -o option is ignorred.)
  -o|--output                Path to output yaml file. E.g. `-o:file.yaml (or -o="file.yaml")`. If omitted or
                             empty value provided ('-o') converter will output to file named like input file or
                             the last segment of url, but with .yaml extension. Required if input is read from
                             stdin.
  -m|--max-size              Specifies size limit for file to be converted. E.g. `-m:10`. If omitted, converter
                             will skip file larger that 20 MB. Respected only when used together with -i option.
  --format-null-as           Yaml can represent null in different ways. Supported values:
                             empty|null|Null|NULL|~. Default is "null".
  --version                  Shows tool version. If more options are provided this option is ignored.
  -v|--verbose               Verbose output. Shows more details on errors.
  -?|-h|--help               Show help information

Examples


The simplest use case to take input from file:

json2yaml -i

This will search current directory for json file. Convert its contents to yaml. And writes output to file named as input file, but with extension .yaml.

For remote input use this:

json2yaml -u:https://localhost:5001/swagger/v1/swagger.json

This will fetch json from provided endpoint and will write content to swagger.yaml file.

To change output file name use -o|--output option:

json2yaml -u:https://localhost:5001/swagger/v1/swagger.json -o:api.yaml

To print conversion results directly to console use -c|--console-output flag:

json2yaml -i:input.json -c

Read input from stdin:

cat test.json | json2yaml -o:output.yaml

Format yaml output. Represent null as ~:

echo "[null, null]" | json2yaml -c --format-null-as:~

prints result:

- ~
- ~

Tool supports full piping scenarios:

cat swagger.json | json2yaml -c | grep version

json2yaml

A simple tool to convert json to yaml.

json2yaml converter reads json input (from file, url endpoint or stdin) and produces converted yaml output (to file or stdout).

Installation


dotnet tool install --global json2yaml

By default .NET will choose which runtime to target.

You can use specific framework version if you want to run tool on different runtime:

dotnet tool install json2yaml --global --framework netcoreapp2.1

Usage


Usage: json2yaml [options]

Options:
  -i|--input                 Path to json input file. E.g. `-i:file.json` (or `-i="file.json"`). If empty value
                             provided (`-i`), converter will search current directory for *.json file.
  -u|--url                   HTTP endpoint to fetch json input from.
  --skip-content-type-check  Flag specifies if http response Content-Type header check can be skipped. Only in
                             effect when -u option is provided.
  -c|--console-output        Flag specifies if converted yaml should be printed directly to console. (In this
                             case -o option is ignorred.)
  -o|--output                Path to output yaml file. E.g. `-o:file.yaml (or -o="file.yaml")`. If omitted or
                             empty value provided ('-o') converter will output to file named like input file or
                             the last segment of url, but with .yaml extension. Required if input is read from
                             stdin.
  -m|--max-size              Specifies size limit for file to be converted. E.g. `-m:10`. If omitted, converter
                             will skip file larger that 20 MB. Respected only when used together with -i option.
  --format-null-as           Yaml can represent null in different ways. Supported values:
                             empty|null|Null|NULL|~. Default is "null".
  --version                  Shows tool version. If more options are provided this option is ignored.
  -v|--verbose               Verbose output. Shows more details on errors.
  -?|-h|--help               Show help information

Examples


The simplest use case to take input from file:

json2yaml -i

This will search current directory for json file. Convert its contents to yaml. And writes output to file named as input file, but with extension .yaml.

For remote input use this:

json2yaml -u:https://localhost:5001/swagger/v1/swagger.json

This will fetch json from provided endpoint and will write content to swagger.yaml file.

To change output file name use -o|--output option:

json2yaml -u:https://localhost:5001/swagger/v1/swagger.json -o:api.yaml

To print conversion results directly to console use -c|--console-output flag:

json2yaml -i:input.json -c

Read input from stdin:

cat test.json | json2yaml -o:output.yaml

Format yaml output. Represent null as ~:

echo "[null, null]" | json2yaml -c --format-null-as:~

prints result:

- ~
- ~

Tool supports full piping scenarios:

cat swagger.json | json2yaml -c | grep version

Release Notes

2.0.0:
* name output file based on last segment of url (if -u option is used and -o option is not provided)
* change default yaml null format (now null, was empty)
* remove dotnet core 2.2 and dotnet core 3.0 support
* add --skip-content-type-check flag
* fix issue when not all content of very huge file is written to file
* bump version of dependencies
1.3.0:
* add --format-null-as option
* fix parsing error when root level list contains null values
* bump version of dependencies
1.2.7:
* bump version of dependencies
1.2.6:
* file io opperations made async
1.2.5:
* fix incorrect recursion level handling in nested objects
1.2.4:
* better support for lists with mixed types in root level
1.2.3:
* bump versions of dependencies
1.2.2:
* add dotnet core 3.1 support
1.2.1:
* fix json2yaml throws error for null simple value
1.2.0:
* support simple value types in root (e.g. echo 5 | json2yaml -c)
1.1.0:
* support multiple runtimes: dotnet core 2.1, dotnet core 2.2, dotnet core 3.0
1.0.5:
* add -v|--verbose option. It shows more detailed errors
1.0.4:
* bump versions of dependencies
1.0.3:
* add --version option. It shows only version string
* fix incorrect message when -u|--url option value is missing
* fix incorrect message when -m|--max-size option value is missing
1.0.2:
* return error if json2yaml is run with no options in stdin mode (e.g. echo 5 | json2yaml)
1.0.1:
* bump versions of dependencies
* use MIT licence identifier in package
1.0.0:
* read input from redirected stdin. Full piping scenarious is supported
0.4.0:
* -c|--console-output: print output results directly to console
0.3.2:
* fix json2yaml -i throws when run on directory without any *.json file
* fix message when json size exceeds value provided with --max-size option
0.3.1:
* support array in root
0.3.0:
* -u|--url option to read input from http endpoint
* show tool version
0.2.0:
* -m|--max-size option
0.1.2-alpha:
* cleanup tool output to console
0.1.1-alpha:
* handle gracefully command line parsing errors

Dependencies

This package has no dependencies.

Version History

Version Downloads Last updated
2.0.0 145 7/9/2020
1.3.0 141 5/31/2020
1.2.7 120 4/18/2020
1.2.6 132 3/6/2020
1.2.5 187 12/23/2019
1.2.4 115 12/23/2019
1.2.3 129 12/21/2019
1.2.2 116 12/18/2019
1.2.1 120 11/9/2019
1.2.0 113 11/9/2019
1.1.0 152 10/21/2019
1.0.5 256 9/9/2019
1.0.4 248 8/10/2019
1.0.3 212 7/7/2019
1.0.2 178 6/13/2019
1.0.1 191 5/18/2019
1.0.0 191 5/15/2019
0.4.0 494 4/6/2019
0.3.2 337 1/20/2019
0.3.1 221 12/17/2018
0.3.0 278 12/9/2018
0.2.0 198 11/24/2018
0.1.2-alpha 260 11/14/2018
0.1.1-alpha 203 11/8/2018
0.1.0-alpha 191 11/6/2018