jsonpath

package
v0.11.0-rc2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2020 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Expand

func Expand(input interface{}, context interface{}) (interface{}, error)

Expand transforms json by walking the incoming input looking for Tekton expressions and translating into json output using a supplied context. Tekton expressions are represented using $(...) where the body is a Kubernetes JSONPath expression. see https://goessner.net/articles/JsonPath/index.html and https://kubernetes.io/docs/reference/kubectl/jsonpath/ Note: "range" and "end" operators are not supported and curly brackets have no special semantics are treated as string literals

Similar to CSS and XPath, JSONPath has the flexibility to return multiple results of any JSON type and expansion is handled differently depending on if the expression container is a scalar (e.g. object field or top-level), or vector (e.g. an array). 1) If expanded into a field-type the "first element" of the JSONPath result "replaces" the expression value 2) If expanded into an array-type "all elements" are appended at the expression's index Note: Tekton uses Kubernetes expansion semantics, so the expression string is returned if there is no matching results

In addition to simple JSONPath expression expansion Tekton supports string templating. Tekton expressions expanded as part of a a larger string or a string containing multiple expressions are output as text. "string" values are output as is without surrounding quotes all other types are JSON Marshalled using goland encoding/json rules. To force a JSONPath result to use string templating add an empty string literal expression to your original expression eg. $(”)$(original.expression.to.stringify)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL