A newer version of this documentation is available.

View Latest

JSON Functions

    Functions for manipulating data in JSON.

    DECODE_JSON(expression)

    Description

    Unmarshals the JSON-encoded string into a SQL++ value. The empty string is MISSING.

    Example

    Example 1. Encode a returned result set as a JSON string.
    Query
    select ENCODE_JSON(airline) as airline
    from `travel-sample`.`inventory`.`airline` airline
    where `id` = 10
    Result
    [
      {
        "airline": "{\"callsign\":\"MILE-AIR\",\"country\":\"United States\",\"iata\":\"Q5\",\"icao\":\"MLA\",\"id\":10,\"name\":\"40-Mile Air\",\"type\":\"airline\"}"
      }
    ]

    ENCODE_JSON(expression)

    Description

    Marshals the SQL++ value into a JSON-encoded string. MISSING becomes the empty string.

    Example

    Example 2. Unmarshal a JSON string into an SQL++ value.
    Query
    select DECODE_JSON("{\"airline\":{\"callsign\": \"Mile-Air\", \"country\": \"United States\", \"iata\": \"Q5\", \"id\": 10, \"name\": \"40-mile Air\", \"type\": \"airline\"}}") as jsonObj
    Result
    [
      {
        "jsonObj": {
          "airline": {
            "callsign": "Mile-Air",
            "country": "United States",
            "iata": "Q5",
            "id": 10,
            "name": "40-mile Air",
            "type": "airline"
          }
        }
      }
    ]

    ENCODED_SIZE(expression)

    Description

    Number of bytes in an uncompressed JSON encoding of the value. The exact size is implementation-dependent. Always returns an integer, and never MISSING or NULL. Returns 0 for MISSING.

    Example

    Example 3. Return the size of the returned object.
    Query
    select ENCODED_SIZE(airline) as airline_size
    from `travel-sample`.`inventory`.`airline` airline
    where `id` = 10
    Result
    [
      {
        "airline_size": 120
      }
    ]

    POLY_LENGTH(expression)

    Description

    Returns length of the value after evaluating the expression. The exact meaning of length depends on the type of the value:

    Example

    Example 4. Return the length of the retrieved object.
    Query
    select POLY_LENGTH(airline) as airline_length
    from `travel-sample`.`inventory`.`airline` airline
    where `id` = 10
    Result
    [
      {
        "airline_length": 7
      }
    ]
    • MISSING: MISSING

    • NULL: NULL

    • String: The length of the string.

    • Array: The number of elements in the array.

    • Object: The number of name/value pairs in the object

    • Any other value: NULL