PostgreSQL jsonb_pretty() Function
Summary: in this tutorial, you will learn how to use the PostgreSQL jsonb_pretty()
function to convert a JSON value to a human-readable, indented format.
Introduction to the PostgreSQL jsonb_pretty() function
The jsonb_pretty()
function allows you to convert a given JSONB value to a human-readable, indented format.
Here’s the basic syntax of the jsonb_pretty()
function:
jsonb_pretty(jsonb_value)
In this syntax:
jsonb_value
is a JSONB value that you want to convert.
The jsonb_pretty()
function returns a text that is the human-readable and indented format of the input JSONB value.
PostgreSQL jsonb_pretty() function examples
Let’s explore some examples of using the jsonb_pretty()
function.
1) Basic PostgreSQL jsonb_pretty() function example
The following example uses the jsonb_pretty()
function to format a JSONB value:
SELECT
jsonb_pretty(
'{"id": 1, "name": {"first": "John", "last": "Doe"}, "age": 30}'
);
Output:
jsonb_pretty
-------------------------
{ +
"id": 1, +
"age": 30, +
"name": { +
"last": "Doe", +
"first": "John"+
} +
}
(1 row)
2) Using PostgreSQL jsonb_pretty() function with table data
First, create a new table called recipes:
CREATE TABLE recipes (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
details JSONB
);
Second, insert some rows into the recipes table:
INSERT INTO recipes (name, details)
VALUES
(
'Spaghetti Carbonara',
'{"preparation_time": "30 minutes",
"ingredients": ["spaghetti", "eggs", "bacon", "parmesan cheese", "black pepper"],
"difficulty": "Medium"}'
),
(
'Chicken Tikka Masala',
'{"preparation_time": "45 minutes",
"ingredients": ["chicken", "tomatoes", "onions", "yogurt", "spices"],
"difficulty": "Medium-High"}'
),
(
'Vegetable Stir Fry',
'{"preparation_time": "20 minutes",
"ingredients": ["mixed vegetables", "soy sauce", "garlic", "ginger", "sesame oil"],
"difficulty": "Easy"}'
);
Third, format the JSONB data in the details column:
SELECT
name,
jsonb_pretty(details)
FROM
recipes;
Output:
name | jsonb_pretty
----------------------+--------------------------------------
Spaghetti Carbonara | { +
| "difficulty": "Medium", +
| "ingredients": [ +
| "spaghetti", +
| "eggs", +
| "bacon", +
| "parmesan cheese", +
| "black pepper" +
| ], +
| "preparation_time": "30 minutes"+
| }
Chicken Tikka Masala | { +
| "difficulty": "Medium-High", +
| "ingredients": [ +
| "chicken", +
| "tomatoes", +
| "onions", +
| "yogurt", +
| "spices" +
| ], +
| "preparation_time": "45 minutes"+
| }
Vegetable Stir Fry | { +
| "difficulty": "Easy", +
| "ingredients": [ +
| "mixed vegetables", +
| "soy sauce", +
| "garlic", +
| "ginger", +
| "sesame oil" +
| ], +
| "preparation_time": "20 minutes"+
| }
(3 rows)
Summary
- Use the
jsonb_pretty()
function to convert a JSON value to pretty-printed, indented text.