Reputation: 737
I use jq 1.5 in a Windows enviroment to modify json files. Hi have following json file:
{"player_container":{"74016":["None","None","None","None","None","None","None","None"],"74002":["None","None","None","ta81a928e0624295b01499d7035d0308","tdd4e222600d42f9954b0be0448da0b1","None","None","None"],"74007":["None","None","None","None","None","None","None","None"],"74009":["None","None","None","None","None","None","kcb810a423dd4e179027f0feaae9ea60","None"],"74012":["x720ed571876471fab173ba05f71e4b3","None","None","None","None","None","None","None"],"74013":["None","None","None","None","None","None","None","None"],"74014":["vd86094b5a6e448f8c416d6fe75bec7c","None","None","h6ef696cf767464f9c367150fdb29fe4","None","g77b124cd46b41399c3db219ac0a76bd","None","None"],"74015":["None","None","None","None","None","None","None","None"]}}
In the object player_container are different objects (the "name" of the object and the number objects differs from time to time). I use following jq command actually to join them into a new array:
.player_container | .[] | [{ user_id: .[]}]
But it generates different json Arrays and not one. What i need looks like:
[
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
}
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "ta81a928e0624295b01499d7035d0308"
},
{
"user_id": "tdd4e222600d42f9954b0be0448da0b1"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
}
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
}
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "kcb810a423dd4e179027f0feaae9ea60"
},
{
"user_id": "None"
}
{
"user_id": "x720ed571876471fab173ba05f71e4b3"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
}
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
}
{
"user_id": "vd86094b5a6e448f8c416d6fe75bec7c"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "h6ef696cf767464f9c367150fdb29fe4"
},
{
"user_id": "None"
},
{
"user_id": "g77b124cd46b41399c3db219ac0a76bd"
},
{
"user_id": "None"
},
{
"user_id": "None"
}
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
},
{
"user_id": "None"
}
]
Any tips?
BR Timo
Upvotes: 1
Views: 515
Reputation: 4385
You only have to move one character:
[.player_container | .[] | { user_id: .[]}]
While your version creates a separate array for each output of .player_container | .[]
, this will collect everything into one array.
Upvotes: 1