| 123456789101112131415161718192021222324252627282930313233343536 |
- package jsonpath
- import (
- "fmt"
- "k8s.io/client-go/util/jsonpath"
- )
- func GetResult(data map[string]interface{}, query string) (interface{}, error) {
- js := jsonpath.New("query")
- err := js.Parse(query)
- if err != nil {
- return nil, err
- }
- results, err := js.FindResults(data)
- if err != nil {
- return nil, err
- }
- for _, result := range results {
- for _, r := range result {
- // if this cannot be interfaced, throw an error
- if !r.CanInterface() {
- return nil, fmt.Errorf("result cannot be interfaced")
- }
- return r.Interface(), nil
- }
- }
- return nil, fmt.Errorf("no query result")
- }
|