package json import ( "strings" "go.neonxp.dev/json/model" "go.neonxp.dev/json/parser" ) // Marshal Node tree to []byte func Marshal(node model.Node) ([]byte, error) { return node.MarshalJSON() } // Unmarshal data to Node tree func Unmarshal(data []byte) (model.Node, error) { return parser.Parse(string(data)) } // Query returns node by query string (dot notation) func Query(json string, query string) (model.Node, error) { n, err := parser.Parse(json) if err != nil { return nil, err } return model.Query(n, strings.Split(query, ".")) } // QueryArray returns node by array query func QueryArray(json string, query []string) (model.Node, error) { n, err := parser.Parse(json) if err != nil { return nil, err } return model.Query(n, query) }