You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
李光春
ec312764d8
|
2 years ago | |
---|---|---|
.. | ||
.gitignore | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
converter.go | 2 years ago | |
decoder.go | 2 years ago | |
doc.go | 2 years ago | |
encoder.go | 2 years ago | |
struct.go | 2 years ago |
README.md
goxml2json
Go package that converts XML to JSON
Install
go get -u github.com/basgys/goxml2json
Importing
import github.com/basgys/goxml2json
Usage
Code example
package main
import (
"fmt"
"strings"
xj "github.com/basgys/goxml2json"
)
func main() {
// xml is an io.Reader
xml := strings.NewReader(`<?xml version="1.0" encoding="UTF-8"?><hello>world</hello>`)
json, err := xj.Convert(xml)
if err != nil {
panic("That's embarrassing...")
}
fmt.Println(json.String())
// {"hello": "world"}
}
Input
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
<bounds minlat="54.0889580" minlon="12.2487570" maxlat="54.0913900" maxlon="12.2524800"/>
<foo>bar</foo>
</osm>
Output
{
"osm": {
"-version": "0.6",
"-generator": "CGImap 0.0.2",
"bounds": {
"-minlat": "54.0889580",
"-minlon": "12.2487570",
"-maxlat": "54.0913900",
"-maxlon": "12.2524800"
},
"foo": "bar"
}
}
Contributing
Feel free to contribute to this project if you want to fix/extend/improve it.
Contributors
TODO
- Extract data types in JSON (numbers, boolean, ...)
- Categorise errors
- Option to prettify the JSON output
- Benchmark