I have a massive JSON output like this
{
"result": [
{
"name": "Fields",
"listFields": [
[
"apple"
],
[
"Banana__c"
]
],
"fields": [
{
"name": "apple",
"displayName": "Apple",
"color": "red",
"price": 20
},
{
"name": "Banana__c",
"displayName": "Banana",
"color": "yellow",
"price": 18
}
]
}
],
"success": true
}
The desired output would be
{
"fields": [
"apple",
"Banana__c"
],
"Brand": "Kroger",
"fruitNames": {
"apple": "Apple",
"Banana__c": "Banana"
}
}
{(.name)[], "Brand": "Kroger", "fruitNames" .fields|map({(.name): .displayName})}
or
.result[] | (.fields | map({key: "fields.name.(.name)", value}) | from_entries)
in https://jqplay.org/# throw syntax errors. Helpful manual here: https://jqlang.github.io/jq/manual/v1.5/
3
Answers
The following should work:
Here’s one way using
from_entries
:Demo
Or even another way:
Try it on jqplay.org.