Похоже, схема graphql не позволяет вам получать данные в нужном вам формате. Исходя из вашего входного запроса, я ожидаю, что схема выглядит примерно так:
query {
leaders: [Leader]
}
type Leader {
party: Party
}
type Party {
Image: Image
}
type Image {
url: String
}
Чтобы получить данные в нужном формате, вам понадобится схема, которая будет выглядеть примерно так:
query {
leaders: [Leader]
}
type Leader {
party: Party,
imageUrl: String
}
Тогда вы можете сделать:
query Leaders {
leaders {
partyImg: imageUrl
}
}
Я предполагаю, что вы не управляете схемой, поэтому вам придется выполнить постобработку. Если вы используете javascript, следующее для вышеприведенного вывода может работать как простое сопоставление.
(function() {
var output = {
"data": {
"leaders": [{
"partyImg": {
"image": {
"url": "/uploads/17a5f020cc974679ac52e56a22b74dd6.png"
}
}
},
{
"partyImg": {
"image": {
"url": "/uploads/70bd673d41654058847e39c14cda5fef.png"
}
}
},
{
"partyImg": {
"image": {
"url": "/uploads/c54a0ace0bb34da3985c67945b1d0bf0.png"
}
}
}
]
}
};
var transformed = {
data: {
leaders: output.data.leaders.map(function flattenUrl(item) {
return {
partyImg: item.partyImg.image.url
};
})
}
}
document.getElementById('transformedOutput').innerHTML = JSON.stringify(transformed);
}());
<div id="transformedOutput"></div>
Если вы являетесь автором этой схемы graphql, вы можете структурировать ее любым удобным для ваших приложений и / или потребителей способом.