Is your feature request related to a problem?
We need to enhance OpenSearch PPL (Piped Processing Language) by adding support for JSON-based operations. This extension will provide users with powerful tools to manipulate and analyze JSON data within PPL queries.
Proposed New Functions
json_object(): Creates a JSON object from existing key/value pairs.
... | eval person = json_object("name", "John", "age", 30)
json(): Evaluates whether a value can be parsed as JSON. Returns the value if valid, null otherwise.
... | eval result = json('{"name":"John","age":30}')
json_append(): Appends elements to the contents of a valid JSON object.
... | eval person = json_object("name", "John"), extended_person = json_append(person, "city", "New York")
json_array(): Creates a JSON array using a list of values.
Is your feature request related to a problem? We need to enhance OpenSearch PPL (Piped Processing Language) by adding support for JSON-based operations. This extension will provide users with powerful tools to manipulate and analyze JSON data within PPL queries.
Proposed New Functions
json_object()
: Creates a JSON object from existing key/value pairs.json()
: Evaluates whether a value can be parsed as JSON. Returns the value if valid, null otherwise.json_append()
: Appends elements to the contents of a valid JSON object.json_array()
: Creates a JSON array using a list of values.json_array_to_mv()
: Maps the elements of a JSON array to a multivalued field.json_delete()
: Removes one or more keys and their corresponding values from the specified JSON object.json_extend()
: Extends the contents of a valid JSON object with the values of an array.json_extract()
: Returns either a JSON array or a native type value from a field and zero or more paths.json_keys()
: Returns the keys from the key-value pairs in a JSON object as a JSON array.json_set()
: Inserts or overwrites values for a JSON node with provided values and returns an updated JSON object.json_valid()
: Evaluates whether a JSON object uses valid JSON syntax and returns TRUE or FALSE.all()
: Iterates over JSON array values and returns true if every value matches the provided predicate.any()
: Iterates over JSON array values and returns true if any value matches the provided predicate.filter()
: Iterates over JSON array values and performs an operation on each value.map()
: Iterates over JSON array values and performs an operation on each value.reduce()
: Iterates over a JSON array in a field or a literal array and performs an accumulation operation.Technical Considerations