How Use JSON Data Type in PostgreSQL?


Angela Bailey

JSON (JavaScript Object Notation) is a popular data interchange format used for transmitting and storing data. PostgreSQL, a powerful open-source relational database management system, provides support for storing and querying JSON data using the JSON data type. This allows you to take advantage of the flexibility and versatility of JSON while still benefiting from the robustness and efficiency of a relational database.

Storing JSON Data

To store JSON data in PostgreSQL, you can use the JSON data type. This allows you to store JSON objects, arrays, or scalar values directly within a column. You can define a column with the JSON data type in your table schema like this:

CREATE TABLE my_table (
  data JSON

In the above example, we create a table called my_table with two columns: id, which is an auto-incrementing primary key, and data, which has the JSON data type.

Inserting JSON Data

To insert JSON data into a table, you can use the ::json cast to convert a text string containing valid JSON into the appropriate format. Here’s an example:

INSERT INTO my_table (data)
VALUES ('{"name": "John", "age": 30}'::json);

In this example, we insert a new row into the my_table. The value for the data column is a JSON object representing a person’s name and age.

Querying JSON Data

PostgreSQL provides a wide range of functions and operators to query and manipulate JSON data. You can access individual fields within a JSON object using the -> operator. For example:

SELECT data -> 'name' AS name
FROM my_table;

In this query, we select the name field from the data column in the my_table. The result will be a set of rows with the name field extracted from each JSON object.

Aggregating JSON Data

You can also perform aggregations on JSON data using built-in PostgreSQL functions. For instance, you can use the json_agg() function to aggregate multiple JSON objects into an array. Here’s an example:

SELECT json_agg(data) AS all_data
FROM my_table;

In this query, we use the json_agg() function to aggregate all rows in the my_table. The result will be a single row containing an array of all the JSON objects.


In this tutorial, we explored how to use the JSON data type in PostgreSQL. We learned how to store and insert JSON data into tables, as well as how to query and aggregate JSON data using various PostgreSQL functions and operators.

By leveraging PostgreSQL’s support for JSON, you can combine the power of a relational database with the flexibility of storing and querying structured or semi-structured data in a convenient format.


Now that you have a good understanding of how to use the JSON data type in PostgreSQL, you can start leveraging its power in your own projects. Happy querying!

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy