JSON Functions (GorillaStack)

JEP:xx
Author:Chris Armstrong (GorillaStack)
Status:draft
Created:31-10-2019

Abstract

This document proposes adding functions for manipulating JSON data, including a parse_json and to_json function.

Motivation

There is separate requirements to both parse JSON strings and to serialise full or partial object structures to JSON.

Specification

The following functions will be added to the specification:

parse_json

any parse_json(string $json_data)

Parse string $json_data containing JSON data and produce an object structure that can be further manipulated by JMESPath.

If the string contains invalid JSON, an error should be generated.

to_json

string to_json(any $value)

Serialise $value to a JSON string. No guarantees are made about formatting - this is implementation dependent.

Impact

Although this introduces no changes to existing syntax or functions, it may be challenging to support correctly in implementations other than JavaScript if the underlying language does not contain a spec-compliant JSON parser or producing arbitrary object structures for use with JMESPath is difficult.