Skip to content

Add JSON Processing Functions #3

@t9t

Description

@t9t

https://www.postgresql.org/docs/11/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE

It would be very nice to also add JSON processing functions, besides the operators.

  • json_array_length(json)
  • jsonb_array_length(jsonb)
  • json_each(json)
  • jsonb_each(jsonb)
  • json_each_text(json)
  • jsonb_each_text(jsonb)
  • json_extract_path(from_json json, VARIADIC path_elems text[])
  • jsonb_extract_path(from_json jsonb, VARIADIC path_elems text[])
  • json_extract_path_text(from_json json, VARIADIC path_elems text[])
  • jsonb_extract_path_text(from_json jsonb, VARIADIC path_elems text[])
  • json_object_keys(json)
  • jsonb_object_keys(jsonb)
  • json_populate_record(base anyelement, from_json json)
  • jsonb_populate_record(base anyelement, from_json jsonb)
  • json_populate_recordset(base anyelement, from_json json)
  • jsonb_populate_recordset(base anyelement, from_json jsonb)
  • json_array_elements(json)
  • jsonb_array_elements(jsonb)
  • json_array_elements_text(json)
  • jsonb_array_elements_text(jsonb)
  • json_typeof(json)
  • jsonb_typeof(jsonb)
  • json_to_record(json)
  • jsonb_to_record(jsonb)
  • json_to_recordset(json)
  • jsonb_to_recordset(jsonb)
  • json_strip_nulls(from_json json)
  • jsonb_strip_nulls(from_json jsonb)
  • jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])
  • jsonb_insert(target jsonb, path text[], new_value jsonb, [insert_after boolean])
  • jsonb_pretty(from_json jsonb)

I should probably focus on the ones that return json, jsonb, and text first as they will be very simple. The ones that return more complex types (such as setof text or record) will be much more difficult, so I will do them later (or even not at all, if it proves to be too time consuming).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions