Awesome
jsonutils
Converter for JSON data to a Go struct or a Java class for GSON
go get github.com/bashtian/jsonutils/cmd/jsonutil
You can print the structure of a JSON from a URL
jsonutil https://api.github.com/repos/bashtian/jsonutils
or from a file
jsonutil -f file.json
or from stdin
echo '{"some": "data"}' | jsonutil
If you want to print example data as comments, use the -x parameter
jsonutil -x https://api.github.com/repos/bashtian/jsonutils
You can also print Java code
jsonutil -j https://api.github.com/repos/bashtian/jsonutils
Example
JSON
{
"firstName": "John",
"lastName": "Smith",
"age": 25,
"balance": 123.45,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber": [
{
"type": "home",
"number": "212 555-1234",
"last_call": "2013-01-10T05:27:07Z"
},
{
"type": "fax",
"number": "646 555-4567",
"last_call": "2013-01-10T05:27:07Z"
}
],
"tags": ["music","video"]
}
Go
jsonutil -x -c=false -f Example.json
type Example struct {
Address struct {
City string `json:"city"` // New York
PostalCode string `json:"postalCode"` // 10021
State string `json:"state"` // NY
StreetAddress string `json:"streetAddress"` // 21 2nd Street
} `json:"address"`
Age int64 `json:"age"` // 25
Balance float64 `json:"balance"` // 123.45
FirstName string `json:"firstName"` // John
LastName string `json:"lastName"` // Smith
PhoneNumber []struct {
LastCall string `json:"last_call"` // 2013-01-10T05:27:07Z
Number string `json:"number"` // 212 555-1234
Type string `json:"type"` // home
} `json:"phoneNumber"`
Tags []string `json:"tags"` // music
}
jsonutils -f Example.json
type Example struct {
Address struct {
City string `json:"city"`
PostalCode int64 `json:"postalCode,string"`
State string `json:"state"`
StreetAddress string `json:"streetAddress"`
} `json:"address"`
Age int64 `json:"age"`
Balance float64 `json:"balance"`
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
PhoneNumber []struct {
LastCall time.Time `json:"last_call"`
Number string `json:"number"`
Type string `json:"type"`
} `json:"phoneNumber"`
Tags []string `json:"tags"`
}