Json: Difference between revisions
Jump to navigation
Jump to search
(→Tips) |
|||
Line 103: | Line 103: | ||
<source lang="bash"> |
<source lang="bash"> |
||
jq -R -r 'split(",") | {name:.[0],age:.[1]}' file.csv |
jq -R -r 'split(",") | {name:.[0],age:.[1]}' file.csv |
||
</source> |
|||
== Using JQ == |
|||
Let's consider this sample JSON: |
|||
<source lang="json"> |
|||
[ |
|||
{ |
|||
"tabs": [ |
|||
{ |
|||
"title": "foo", |
|||
"windows": [ |
|||
{ |
|||
"columns": 137, |
|||
"title": "first", |
|||
"lines": 74, |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"title": "bar", |
|||
"windows": [ |
|||
{ |
|||
"columns": 68, |
|||
"lines": 74, |
|||
"title": "one" |
|||
}, |
|||
{ |
|||
"columns": 67, |
|||
"lines": 37, |
|||
"title": "two" |
|||
}, |
|||
{ |
|||
"columns": 67, |
|||
"lines": 37, |
|||
"title": "three" |
|||
} |
|||
] |
|||
} |
|||
] |
|||
} |
|||
] |
|||
</source> |
|||
* Query the <code>lines</code> of <code>windows</code> with <code>title == "two"</code> |
|||
<source lang="bash"> |
|||
# Note the anonymous root array |
|||
jq '.[].tabs[].windows[] | select( .title == "two" ) | .lines' kitty.json |
|||
</source> |
</source> |
Revision as of 11:03, 25 July 2023
References
- Tools
- jq — a command-line tool for manipulating JSON.
- jsonptr — same, but extra speed and safety.
- jj — JSON Stream Editor (command line utility).
Specification
object
{}
{ members }
members
pair
pair , members
pair
string : value
array
[]
[ elements ]
elements
value
value , elements
|
value
string
number
object
array
true
false
null
string
""
" chars "
chars
char
char chars
|
char
any-Unicode-character-
except-"-or-\-or-
control-character
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits
|
number
int
int frac
int exp
int frac exp
int
digit
digit1-9 digits
- digit
- digit1-9 digits
frac
. digits
|
exp
e digits
digits
digit
digit digits
e
e
e+
e-
E
E+
E-
|
JSON query
Example of query:
{ "name" : "my_beautiful_project" }
Tips
Convert CSV to JSON
jq -R -r 'split(",") | {name:.[0],age:.[1]}' file.csv
Using JQ
Let's consider this sample JSON:
[
{
"tabs": [
{
"title": "foo",
"windows": [
{
"columns": 137,
"title": "first",
"lines": 74,
}
]
},
{
"title": "bar",
"windows": [
{
"columns": 68,
"lines": 74,
"title": "one"
},
{
"columns": 67,
"lines": 37,
"title": "two"
},
{
"columns": 67,
"lines": 37,
"title": "three"
}
]
}
]
}
]
- Query the
lines
ofwindows
withtitle == "two"
# Note the anonymous root array
jq '.[].tabs[].windows[] | select( .title == "two" ) | .lines' kitty.json