odpovídající jq ~ existuje lepší způsob, jak k pádu jednoho objektu pole? a R: Vnořená data.tabulky do JSON jak mám sbalit pouze určité prvky?
Chci se zbavit "skupiny" pole v
[
{
"id2": "A",
"group": [
{
"data": [
{
"id1": 1,
"group": [
{
"data": [
{
"a": 1,
"b": 1
},
{
"a": 2,
"b": 2
}
],
"type": "test"
}
],
"type": "B"
}
],
"type": "C"
}
]
},
{
"id2": "C",
"group": [
{
"data": [
{
"id1": 3,
"group": [
{
"data": [
{
"a": 1,
"b": 1
}
],
"type": "test"
}
],
"type": "B"
}
],
"type": "C"
}
]
}
]
požadovaný výstup
[{
"id2": "A",
"group": {
"data": [{
"id1": 1,
"group": {
"data": [{
"a": 1,
"b": 1
},
{
"a": 2,
"b": 2
}
],
"type": "test"
},
"type": "B"
}],
"type": "C"
}
},
{
"id2": "C",
"group": {
"data": [{
"id1": 3,
"group": {
"data": [{
"a": 1,
"b": 1
}],
"type": "test"
},
"type": "B"
}],
"type": "C"
}
}
]
Linka 'walk(if type=="array" and length==1 then .[0] else . end)'
navíc odstraňuje pole od jednotné "data" objekt.
Bohužel, nejsme schopni instalovat jq 1.6 verzi na našich RStudio Server und čímž nejsem schopen používat chodit funkci. (I když funguje naprosto v pořádku na mém místním systému)
Může někdo pomoci mne ven s alternativním řešením bez pěšky? Bude vysoce ocenil.
edit Ok, mám to. Mohu ručně přidat procházku funkce, jako jsou:
'def walk(f):
. as $in
| if type == "object" then
reduce keys_unsorted[] as $key
( {}; . + { ($key): ($in[$key] | walk(f)) } ) | f
elif type == "array" then map( walk(f) ) | f
else f
end; walk(if type=="object"
and has("group")
and (.group | type)=="array"
and (.group | length)==1
then .group = .group[0]
else . end)'