我有如下所示的深層嵌套資料。資料可能看起來不必要地嵌套,但我已經洗掉了不重要的資料以減少一些混亂。
[
{
"id": "1",
"entries": [
{
"data": {
"values": [
{
"data_of_interest": {
"frames": [
{
"filename": "arg",
"module": "bar",
"package": "foo",
"platform": "blargh"
},
{
"filename": "arg1",
"module": "barge",
"package": "something",
"platform": "blargh.io"
}
]
}
}
]
}
}
]
},
{
"id": "2",
"entries": [
{
"data": {
"values": [
{
"data_of_interest": {
"frames": [
{
"filename": "app",
"module": null,
"package": null,
"platform": null
}
]
}
}
]
}
}
]
}
]
我想要做的是將'id'欄位分配到'frames'陣列中的每個記錄中,以及每個幀的索引,然后將所有幀展平到一個串列中。結果資料如下所示:
[
{
"id": 1,
"frame_idx": 0,
"filename": "arg",
"module": "bar",
"package": "foo",
"platform": "blargh"
},
{
"id": 1,
"frame_idx": 1,
"filename": "arg1",
"module": "barge",
"package": "something",
"platform": "blargh.io"
},
{
"id": 2,
"frame_idx": 0,
"filename": "app",
"module": null,
"package": null,
"platform": null
}
]
對于我的生活,我無法弄清楚如何正確地將 id 或索引分配到幀記錄中。我的嘗試總是將 id 和 index 放在旁邊,但不在框架記錄內。
uj5u.com熱心網友回復:
首先深入到最內層(level of indexes of the "frames" list)。然后,確定公共因子(@(9,id))以便將結果嵌套在公共陣列下,同時通過[&1]諸如
[
{
"operation": "shift",
"spec": {
"*": { // top level indexes
"entries": {
"*": { //indexes of "entries"
"*": { // "data"
"*": { // "values"
"*": { // indexes of "values"
"*": { // "data_of_interest"
"*": { // "frames"
"*": { // indexes of "frames"
"@(8,id)": "@(9,id).[&1].id", // go 8 or 9 levels up respectively in order to grab the value of "id"
"$": "@(9,id).[&1].frame_idx",
"*": "@(9,id).[&1].&"
}
}
}
}
}
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": ""
}
}
}
]
網站
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/448566.html
