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.