jsonquery
jsonquery is a Go library that allows you to parse and extract data from JSON documents using JSONPath expressions. JSONPath is similar to XPath, but it is designed specifically for working with JSON documents.
The jsonquery library allows you to traverse the JSON tree structure and
extract values using JSONPath expressions. It provides a simple and intuitive API
for querying the JSON data, and it is built on top of the popular jsoniter
library.
Example Use
package main
import (
"fmt"
"log"
"github.com/antchfx/jsonquery"
)
func main() {
// Parse the JSON string
doc, err := jsonquery.Parse([]byte(`
{
"name": "John Doe",
"age": 30,
"address": {
"street": "Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
},
"phones": [
"555-555-5555",
"555-555-5556"
]
}
`))
if err != nil {
log.Fatal(err)
}
// Extract the name
name := jsonquery.FindOne(doc, "name")
fmt.Println(name.InnerText()) // "John Doe"
// Extract the city
city := jsonquery.FindOne(doc, "address.city")
fmt.Println(city.InnerText()) // "Anytown"
// Extract all phone numbers
phones := jsonquery.Find(doc, "phones[*]")
for _, phone := range phones {
fmt.Println(phone.InnerText())
}
// "555-555-5555"
// "555-555-5556"
}