Categorygithub.com/aaronland/go-json-query
modulepackage
0.1.5
Repository: https://github.com/aaronland/go-json-query.git
Documentation: pkg.go.dev

# README

go-json-query

Go package for querying and filter JSON documents using tidwall/gjson-style paths and regular expressions for testing values.

Documentation

Go Reference

Important

Documentation is incomplete.

Example

import (
	"context"
	"flag"
	"fmt"
	"github.com/aaronland/go-json-query"
	"io"
	"os"
	"strings"
)

func main() {

	var queries query.QueryFlags
	flag.Var(&queries, "query", "One or more {PATH}={REGEXP} parameters for filtering records.")

	valid_modes := strings.Join([]string{query.QUERYSET_MODE_ALL, query.QUERYSET_MODE_ANY}, ", ")
	desc_modes := fmt.Sprintf("Specify how query filtering should be evaluated. Valid modes are: %s", valid_modes)

	query_mode := flag.String("query-mode", query.QUERYSET_MODE_ALL, desc_modes)

	flag.Parse()

	paths := flag.Args()

	qs := &query.QuerySet{
		Queries: queries,
		Mode:    *query_mode,
	}

	ctx := context.Background()

	for _, path := range paths {

		fh, _ := os.Open(path)
		defer fh.Close()

		body, _ := io.ReadAll(fh)

		matches, _ := query.Matches(ctx, qs, body)

		fmt.Printf("%s\t%t\n", path, matches)
	}
}

See also

# Packages

No description provided by the author

# Functions

Matches compares the set of queries in 'qs' against a JSON record ('body') and returns true or false depending on whether or not some or all of those queries are matched successfully.

# Constants

QUERYSET_MODE_ALL is a flag to signal that only all matches in a QuerySet needs to be successful.
QUERYSET_MODE_ANY is a flag to signal that only one match in a QuerySet needs to be successful.
The separator string used to distinguish {PATH}={REGULAR_EXPRESSION} strings.

# Structs

Query is an atomic query to perform against a JSON document.
QuerySet is a struct containing one or more Query instances and flags for how the results of those queries should be interpreted.

# Type aliases

QueryFlags holds one or more Query instances that are created using {PATH}={REGULAR_EXPRESSION} strings.