Socket
Socket
Sign inDemoInstall

github.com/yukithm/json2csv

Package Overview
Dependencies
2
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    github.com/yukithm/json2csv

Package json2csv provides JSON to CSV functions.


Version published

Readme

Source

Build Status

json2csv

Convert JSON into CSV. CSV header is generated from each key path as a JSON Pointer. json2csv can be used as a library and command line tool.

Install

Use go get or just download binary releases.

go get github.com/yukithm/json2csv/cmd/json2csv

Usage

json2csv reads JSON content from STDIN or the file specified by the argument.

json2csv example.json
cat example.json | json2csv

Convert object array:

[
    {
        "id": 1,
        "name": "foo",
        "favorites": {
            "fruits": "apple",
            "color": "red"
        }
    },
    {
        "id": 2,
        "name": "bar",
        "favorites": {
            "fruits": "orange"
        }
    },
    {
        "id": 3,
        "name": "baz",
        "favorites": {
            "fruits": "banana",
            "color": "yellow"
        }
    }
]
$ json2csv example1.json

/id,/name,/favorites/color,/favorites/fruits
1,foo,red,apple
2,bar,,orange
3,baz,yellow,banana

Convert object:

{
    "status": 200,
    "result": [
        {
            "id": 1,
            "name": "foo"
        },
        {
            "id": 2,
            "name": "bar"
        }
    ]
}
$ json2csv example2.json

/status,/result/0/id,/result/0/name,/result/1/id,/result/1/name
200,1,foo,2,bar

Convert an array of the object:

Use --path=<JSON Pointer> option.

$ json2csv --path=/result example2.json

/id,/name
1,foo
2,bar

Transpose rows and columns:

$ json2csv --transpose example1.json

/id,1,2,3
/name,foo,bar,baz
/favorites/color,red,,yellow
/favorites/fruits,apple,orange,banana

Header styles

By default, header is represented with JSON Pointer. --header-style=STYLE option can change styles.

styleexample
jsonpointer/foo/bar/0/baz
slashfoo/bar/0/baz
dotfoo.bar.0.baz
dot-bracketfoo.bar[0].baz

Note: slash style similar to jsonpointer style, but slash style doesn't start with '/' and doesn't escape special characters ('/' and '~') defined in RFC 6901.

Note: dot-bracket style similar to dot style, but dot-bracket style uses square brackets for array indexes.

License

MIT

Author

Yuki (@yukithm)

FAQs

Last updated on 01 Oct 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc