Skip to content

mxj

617 2 1 MIT
per (24 Jul 2023) Feb 09 2017 58.1 thousand (month)

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


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"
}

Alternatives / Similar


250 v1.3.5 (21 days ago) Oct 15 2019 compare
416 v1.4.1 (21 days ago) Feb 08 2019 compare

Other Languages

2,130 1.0.1 (2 years ago) Feb 09 2022 compare
545 1.6.1 (6 months ago) Feb 09 2022 compare
373 1.8.8 (1 year, 16 days ago) Dec 03 2013 compare
209 0.2.25 (2 years ago) Feb 09 2022 compare
Was this page helpful?