Projections
An object projection is the section inside {...} after select.
Select fields
select {id, name, email} from 'customers.json'
Every input row produces an object with those fields.
Rename a value
Put the output key before a colon:
select {customerId: id, displayName: name} from 'customers.json'
Create nested objects
Nested braces create nested output:
select {
id,
contact: {name, email}
} from 'customers.json'
{"id": 1, "contact": {"name": "Amina", "email": "amina@example.com"}}
An empty nested projection is valid:
select {metadata: {}} from 'customers.json'
It returns {"metadata": {}} for every row.
Missing values
Missing and explicit null values are left out of projected objects. Values such as 0, false, and an empty string are preserved.
Unique output paths
Every output path must be unique. Do not select both a parent and one of its children in the same projection. Distinct paths such as users.name and teams.name remain separate nested objects.
Contextual values
true, false, and null can be used as values:
select {id, enabled: true} from 'customers.json'
If the source contains a field literally named true, false, or null, that field value is used. Otherwise JQL uses the corresponding boolean or null value.