TL;DR
To prettify JSON in the Linux command line, you try these three methods:
- Use the
jq
command to prettify JSON in Linuxcat filename.json | jq '.' -C
. And if you want to save the output in a separate file, you can executecat filename.json | jq '.'> outputfilename.json
. - Use the
python3
commandpython3 -m json.tool filename.json
to display the prettified output of your JSON file in the Terminal. - You can also pretty print your JSON file with the
json_xs
command and save the result to a new file usingcat filename.json | json_xs > structured.json
.
To more efficiently prettify JSON in Linux, follow these best practices like using a consistent format, syntax highlighting, and indentation style. Moreover, you should minimize unnecessary whitespace, verify output, make backups, avoid tabs, and validate JSON. Troubleshooting common errors like invalid JSON, incorrect command syntax, and missing dependencies also helps in JSON prettification. You can also use third-party online tools like jsonformatter.org, jsoneditoronline.org, jsonlint.com, and Online JSON Viewer to quickly prettify JSON code.
For a detailed, step-by-step tutorial on making JSON more readable in Linux, don’t miss the full article below.
JSON (JavaScript Object Notation) is a popular lightweight data format for exchanging information between systems. Despite its ease of use, large JSON files can become challenging to read, making it difficult for developers to work with them. One solution is to prettify JSON by adding indentation, spacing, and line breaks. This enhances the readability and understanding of the file. In this article, I will explore the three ways to prettify JSON code using the Linux command line and third-party online tools.
How to Prettify JSON in Linux in 3 Easy Ways
There are three ways to prettify JSON in the Linux command line. That includes the use of jq
, python3
, and json_xs
commands. To learn more, letโs have a closer look at each of them here:
1. jq Command to Prettify JSON
The basic method to prettify JSON in Linux is to use the jq
command-line utility. It is a lightweight, flexible command-line JSON processor for formatting, querying, and manipulating JSON data. Here’s how you can use jq
to prettify JSON, follow these steps:
- Install
jq
if it’s not already installed using the package manager for your distribution. For example, if you are using Ubuntu or Debian, you can install it using the following command:
sudo apt-get install jq
- Type y and press Enter to continue with the solution.

- After that, head to the directory where your JSON file is located. Note down the directory path and verify whether it has proper formatting or not.

- Next, open the JSON file in the Linux command line. Navigate to the directory where your JSON file is located using the
cd
command.

- Pipe the JSON data to the
jq
command, and use the-C
option to enable color output in the Terminal app with syntax highlighting:
cat filename.json | jq '.' -C
- Once you execute the command, you’ll get the following output:

- If you need this output in a separate JSON file, use the
>
operator with thejq
command to redirect the output to a new file. Here’s the command to execute in the Terminal window:
cat filename.json | jq '.' > outputfilename.json
- As you execute the command and no error pops up, it means that the command is executed and the JSON file output has been created in the current directory.

- Head to the directory path where you have created the file to check the output file.

- Click the file to view the formatted output.

- To validate the newly created JSON file, you may need to install JSON package with the following command:
sudo apt install python3-demjson

- Then, you can use the
jsonlint
tool to validate the JSON syntax:
jsonlint outputfilename.json

- Here’s an example of JSON files before and after prettification using the jq command:
Before Prettification:

After Prettification:

2. python3 Command to Pretty Print JSON Files
If you want to make your JSON files more readable and user-friendly, you can pretty-print them using python3
. Here’s how you can do it:
- In the Terminal app, navigate to the directory containing the JSON file using the
cd
command.

- Run the following command, replacing File.json with the name of your JSON file:
python3 -m json.tool filename.jsonย
- The JSON file will be pretty-printed in the Terminal output.

3. json_xs Command to Pretty Print JSON Files
The json_xs command is a powerful tool that can be used to pretty print JSON files in the terminal and even save the result to a new file. Here are the steps to follow:
- Launch the Terminal app and use the
cd
command to navigate to the directory containing the JSON file.

- Run the following command, replacing
filename.jso
n with the name of your JSON file andstructured.json
with the desired output filename:
cat filename.json json_xs > structured.json
Note: You may need to execute sudo apt install libjson-xs-perl
to run the above-mentioned command.

- This command will pretty print the JSON file and save the result to a new file called
filename_structured.json
.

- Once you open these files, you’ll notice that the original file remains unaltered while the newly created file is well-structured and formatted. Here is the output:
Before Prettification:

After Prettification:

Top 4 Third-Party Tools to Prettify JSON Code
When working with small amounts of data, online tools can be a great option for prettifying JSON files. These tools provide a user-friendly interface for prettifying JSON. Some popular tools are as follows:
1. jsonformatter.org
This tool allows you to paste your JSON code directly into the tool and click the Format button to prettify the code. Additionally, it offers options to compress or minify the code, making it versatile for working with JSON files.

2. jsoneditoronline.org
This tool provides a user-friendly interface for viewing, searching, and editing JSON files. It offers a tree view of the JSON structure and allows you to collapse and expand nodes as needed. To format your JSON code, simply click the Transform button, and youโll see the formatted output on the right side of the screen.

3. jsonlint.com
This tool provides a simple interface for validating and formatting JSON code. You can paste your code directly into the tool, and it will provide information on any errors or issues with the code. This can be a useful tool for debugging small parts of codes and ensuring that your JSON files are properly formatted.

4. Online JSON Viewer
This tool by BeautifyTools allows you to upload from a URL or paste JSON data and format. It has options for indentation, sorting, and collapsing or expanding nested elements. In the viewer mode, you can see the value of each variable in the table view.

6 Troubleshooting Tips When Prettifying JSON
Here are some common errors you may encounter when prettifying JSON in the Linux command line and how to troubleshoot them:
- โ Incorrect formatting: If the output formatting is not as expected, check the command options and make sure you are using the appropriate flags for the desired output. For instance, if you want to indent with four spaces instead of two, you may need to use a different flag or option like
--indent 4
. Your command should look like this:jq '.' data.json --indent 4
. Once executed, it will prettify your JSON data file with four indentation spaces. - ๐ File not found: If you are attempting to prettify a JSON file and receive an error indicating that the file cannot be found, double-check the file path and make sure you are using the correct path and file name. You can use the
ls
command to list the files in a directory and verify the file’s existence. Alternatively, you can search for that particular file by using thefind
andfile
. - ๐ Permissions issues: To troubleshoot and resolve a “permission denied” error when attempting to prettify a JSON file, you should check the file permissions using the
ls -l
command to verify that you have the appropriate privileges to access or modify the file. If the file permissions do not allow you to read or write the file, you can use thechmod u+rw filename.json
command to change the file permissions accordingly. - ๐ Large file size: Attempting to prettify a very large JSON file may result in performance issues or unexpected errors. In this case, consider splitting the file into smaller sections using
split
. For example, you can split a large JSON file into smaller chunks of 1000 lines each using thesplit -l 1000 largefile.json smaller-file-prefix
command. Alternatively, you can prettify JSON data usingcat
andjq
with the--compact-output
option. The command should look like this:cat data.json | jq --compact-output '.'
. - ๐ซ Unsupported file types: To avoid errors when prettifying JSON data, make sure to use a prettifying command that supports the file type you are working with. You can usually find information about supported file types and formats in the command documentation or by using the
--help
option. If the file format is not supported, you can use certain tools and libraries to convert the file formats, such asjq
,python-json.tool
, andjson_normalize
in Python. For example, you can use thejq
andcsvjson
commands to convert a CSV file to JSON format before prettifying. Your command should look like this:csvjson data.csv | jq '.'
. - ๐ฃ Encoding issues: If you encounter encoding errors or issues when attempting to prettify a JSON file, check the file encoding and make sure the prettifying command supports it. You can use the
file
command to check the file encoding. If it is not supported, use theiconv
command to convert the file to a different encoding format before attempting to prettify it. For example, useiconv -f utf-16 -t utf-8 data.json > newdata.json
to convert a file from UTF-16 to UTF-8 encoding.
8 Best Practices for Prettifying JSON in Linux Command Line
Prettifying JSON can make it easier to read and understand, but some best practices should be followed to ensure that the output is clear and organized. Some best practices for prettifying JSON in the Linux command line include the following:
- ๐ง Use Consistent Formatting: Consistency in formatting the JSON document, including indentation, spacing, and line breaks, makes the document easier to read and understand.
- ๐ Minimise Unnecessary Whitespace: Remove unnecessary whitespace from the JSON document, such as trailing spaces or extra blank lines. It makes the document more compact and easier to read. Use
jq
to remove unnecessary whitespace:jq . input.json > output.json
- ๐จ Use Syntax Highlighting: Use a tool that supports syntax highlighting, such as
jq
or an online editor to make the JSON document more readable. - ๐ Verify the Output: Always verify the output after prettifying the JSON to ensure that it is still valid JSON and that no data has been lost or corrupted.
- ๐พ Always Make a Backup: Before prettifying the JSON file, backup the original file to avoid data loss or corruption in case something goes wrong. Use
cp
to create a backup:cp input.json input.json.backup
- ๐ Use Consistent Indentation Style: Consistent indentation style in the JSON file enhances readability and ensures uniformity.
- ๐ซ Avoid Using Tabs: Avoid using tabs for indentation, as they can cause issues when transferring files between different operating systems. Use spaces instead.
- โ Validate your JSON: Use a tool like JSONLint to validate your JSON file before prettifying it. It ensures that the JSON file is valid and can be used without issues.
Key Takeaways
To improve JSON readability, make sure to prettify them using Linux command-line tools like jq
, python3
, and json_xs
. Apart from these methods, you should follow the best practices for consistent formatting, removing unnecessary whitespace, and verifying output. Also, you may need to troubleshoot common issues, like invalid JSON or incorrect command syntax, for successful prettification. Third-party tools are also available for JSON formatting.
In addition to JSON prettification, you should check out my detailed guide on using the echo command to make your code more readable. While you are at it, explore the efficient file-reading techniques and master regular expressions with the grep command to level up your Linux programming skills. Learning them will allow you to manipulate and process data in different Linux tasks efficiently. So, it’s definitely worth diving into these topics!
Frequently Asked Questions
What is JSON, and why is it popular?
JSON stands for JavaScript Object Notation, a lightweight and easy-to-read format for exchanging data between systems. It is popular because it is platform-independent, human-readable, and can be easily parsed by many programming languages.
Does prettifying JSON change its content or structure?
No, prettifying JSON does not change its content or structure. It only changes the formatting and indentation of the JSON data to make it more human-readable. This can be useful for debugging or reading large JSON files.
Can I prettify JSON that is stored in a database?
Yes, you can prettify JSON that is stored in a database by first extracting the JSON data from the database, saving it to a file, and then prettifying the file using the jq
command or a third-party tool.
Is JSON prettification the same as minification?
No, JSON prettification and minification are opposite processes. Prettification involves adding whitespace, indentation, and line breaks to improve the readability of JSON files, while minification involves removing all unnecessary characters to reduce the file size.
How do I prettify JSON data?
To prettify JSON data, you can use jq
in Linux command prompt. It is a lightweight and flexible command-line JSON processor that can be used to format and transform JSON data. Here’s how to use it:cat input.json | jq
This will read the JSON data from a file called “input.json” and use jq
it to format and prettify it, printing the result to the console.