jq · lesson 16 of 32 · Transforming
Types & conversion
type names a value's type, and tostring, tonumber, tojson and fromjson convert between types.
Examples
Example 1Inspect and convert
Document
{
"team": "Platform",
"office": { "city": "Berlin", "floor": 3 },
"members": [
{ "name": "Ada", "age": 36, "role": "lead", "active": true,
"email": "[email protected]", "skills": ["rust", "sql"] },
{ "name": "Linus", "age": 28, "role": "dev", "active": true,
"email": null, "skills": ["c", "shell"] },
{ "name": "Grace", "age": 45, "role": "dev", "active": false,
"skills": ["cobol"] },
{ "name": "Alan", "age": 41, "role": "qa", "active": true,
"email": "[email protected]", "skills": [] }
]
}Query
.members[0] | (.age | tostring), (.skills | type), ("42" | tonumber)
(.age | tostring)Number → string:"36".(.skills | type)The type's name:"array".("42" | tonumber)String → number:42. Any literal can be piped into a filter.
Result
"36" "array" 42
Good to know
- The types are
null,boolean,number,string,arrayandobject. - Format strings re-encode a value:
.name | @base64,@uri,@html,@sh, and@json(the same astojson).