mxj
mxj is a Go library for working with JSON and XML data. It allows you to convert between JSON and XML, merge JSON and XML documents, and extract values from JSON and XML using a simple and intuitive API.
One of the main features of mxj is its ability to work with JSON and XML data in a struct-like manner, allowing you to access values using dot notation.
Example Use
```go package main
import ( "fmt"
"github.com/clbanning/mxj" )
func main() {
// Parse the JSON string
jsonData := []byte({
"name": "John Doe",
"age": 30,
"address": {
"street": "Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
},
"phones": [
"555-555-5555",
"555-555-5556"
]
})
mv, err := mxj.NewMapJson(jsonData)
if err != nil {
fmt.Println("Error:", err)
return
}
// Extract the name name, _ := mv.ValueForPath("name") fmt.Println("name:", name) // "John Doe"
// Extract the city city, _ := mv.ValueForPath("address.city") fmt.Println("city:", city) // "Anytown"
// Extract all phone numbers phones, _ := mv.ValuesForPath("phones") for _, phone := range phones { fmt.Println("phone:", phone) } // "555-555-5555" // "555-555-5556" } ```