How to parse JSON string via command line on Linux
If you often deal with JSON-formatted texts from the command line or in shell scripts, you may wonder if there is any command-line utility which can parse JSON string. A command-line JSON parser can be handy when you test or debug JSON web services. You can feed JSON-formatted responses from web services into the command-line JSON parser, thereby easily inspecting otherwise hard-to-read JSON responses or extracting individual objects from them.
In this tutorial, I will describe how to parse JSON string from the command line.
On Linux, there is a command-line JSON processor called jq which does exactly that. Using jq, you can parse, filter, map, and transform JSON-structured data effortlessly.
To install jq on Linux, simply download its binary (available for 32-bit and 64-bit system separately) as follows.
If you often deal with JSON-formatted texts from the command line or in shell scripts, you may wonder if there is any command-line utility which can parse JSON string. A command-line JSON parser can be handy when you test or debug JSON web services. You can feed JSON-formatted responses from web services into the command-line JSON parser, thereby easily inspecting otherwise hard-to-read JSON responses or extracting individual objects from them.
In this tutorial, I will describe how to parse JSON string from the command line.
On Linux, there is a command-line JSON processor called jq which does exactly that. Using jq, you can parse, filter, map, and transform JSON-structured data effortlessly.
To install jq on Linux, simply download its binary (available for 32-bit and 64-bit system separately) as follows.
$ wget http://stedolan.github.io/jq/download/linux32/jq (32-bit system)
$ wget http://stedolan.github.io/jq/download/linux64/jq (64-bit system)
$ chmod +x ./jq
$ sudo cp jq /usr/bin
The jq binary is also available for Windows and OS X platforms, and its full source code is released under the MIT license.
The following examples illustrate how to parse JSON-structured data with jq.
An example JSON Schema:
The following examples illustrate how to parse JSON-structured data with jq.
An example JSON Schema:
$ cat json.txt
{
"name": "Google",
"location":
{
"street": "1600 Amphitheatre Parkway",
"city": "Mountain View",
"state": "California",
"country": "US"
},
"employees":
[
{
"name": "Michael",
"division": "Engineering"
},
{
"name": "Laura",
"division": "HR"
},
{
"name": "Elise",
"division": "Marketing"
}
]
}
To parse a JSON object:
$ cat json.txt | jq '.name'
"Google"
To parse a nested JSON object:
$ cat json.txt | jq '.location.city'
"Mountain View"
To parse a JSON array:
$ cat json.txt | jq '.employees[0].name'
"Michael"
To extract specific fields from a JSON object:
$ cat json.txt | jq '.location | {street, city}'
{
"city": "Mountain View",
"street": "1600 Amphitheatre Parkway"
}
Aucun commentaire:
Enregistrer un commentaire