code: def json_object(
      on_null: JsonOnNull = JsonOnNull.NULL, *args
  ) -> Expression:
      """
      Builds a JSON object string from a list of key-value pairs.
  
      `args` is an even-numbered list of alternating key/value pairs. Note that keys must be
      non-`NULL` string literals, while values may be arbitrary expressions.
  
      This function returns a JSON string. The `on_null` behavior defines how to treat `NULL` values.
  
      Values which are created from another JSON construction function call (`json_object`,
      `json_array`) are inserted directly rather than as a string. This allows building nested JSON
      structures.
  
      Examples:
      ::
  
          >>> json_object() # '{}'
          >>> json_object(JsonOnNull.NULL, "K1", "V1", "K2", "V2") # '{"K1":"V1","K2":"V2"}'
  
          >>> # Expressions as values
          >>> json_object(JsonOnNull.NULL, "orderNo", col("orderId"))
  
          >>> json_object(JsonOnNull.NULL, "K1", null_of(DataTypes.STRING()))   # '{"K1":null}'
          >>> json_object(JsonOnNull.ABSENT, "K1", null_of(DataTypes.STRING())) # '{}'
  
          >>> # '{"K1":{"K2":"V"}}'
          >>> json_object(JsonOnNull.NULL, "K1", json_object(JsonOnNull.NULL, "K2", "V"))
  
      .. seealso:: :func:`~pyflink.table.expressions.json_array`
      """
      return _varargs_op(
          "jsonObject", *(on_null._to_j_json_on_null(), *args)
      )
  
imports: from typing import Union
  from pyflink import add_version_doc
  from pyflink.java_gateway import get_gateway
  from pyflink.table.expression import Expression, _get_java_expression, TimePointUnit, JsonOnNull
  from pyflink.table.types import _to_java_data_type, DataType
  from pyflink.table.udf import UserDefinedFunctionWrapper
  from pyflink.util.java_utils import to_jarray, load_java_class
label_desc: Use image node_id 53 for calling a global function with example usage: json_object(on_null) and returns: _varargs_op