I have below data:
{
"msg": [
{
"country": {
"city": {
"county": [
{
"zipcode": "code1",
"address": "add1"
},
{
"zipcode": "code2",
"address": "add2"
},
{
"zipcode": "code3",
"address": "add3"
}
]
}
},
"countyname": "county-a"
},
{
"country": {
"city": {
"county": {
"zipcode": "code1",
"address": "add1"
}
}
},
"countyname": "county-b"
}
]
}
First attempt:
- name: data
debug: out= "{{msg | json_query(query)}}"
vars:
query: "[].{county: countyname, zipcode: country.city.county[].zipcode , address: country.city.county[].address}"
Result:
[
{
"county": "county-a",
"zipcode": [
"code1",
"code2",
"code3"
],
"address": [
"add1",
"add2",
"add3"
]
},
{
"Name": "county-b",
"local": null,
"remote": null
}
]
Second attempt:
- name: data
debug: out= "{{msg | json_query(query)}}"
vars:
query: "[].{county: countyname, zipcode: country.city.county.zipcode , address: country.city.county.address}"
Result:
[
{
"county": "county-a",
"zipcode": null,
"address": null
},
{
"county": "county-b",
"zipcode": "code1",
"address": "add1"
}
]
If I use query: "[].{County: countyname, zipcode: country.city.county[].zipcode, address: country.city.county[].address}"
, I get null
values for county-b
.
If I use query: "[].{County: countyname, zipcode: country.city.county.zipcode, address: country.city.county.address}"
, I get null
values for county-a
.
What is the right way to use json_query
so that using a single query, I get both county data like
[
{
"county": "county-a",
"zipcode": [
"code1",
"code2",
"code3"
],
"address": [
"add1",
"add2",
"add3"
]
},
{
"Name": "county-b",
"zipcode": "code1",
"address": "add1"
}
]