[英]JOLT Transformation - Pivot
我正在嘗試轉換以下 JSON
[
{
"name": "Buy",
"List": [
{
"x": "7/8/2021",
"y": 462853
},
{
"x": "7/9/2021",
"y": 462777
},
{
"x": "7/10/2021",
"y": 462701
}
]
},
{
"name": "Statistical",
"List": [
{
"x": "7/8/2021",
"y": 462853
},
{
"x": "7/9/2021",
"y": 462777
},
{
"x": "7/10/2021",
"y": 462701
}
]
},
{
"name": "Sell",
"List": [
{
"x": "7/8/2021",
"y": 462853
},
{
"x": "7/9/2021",
"y": 462777
},
{
"x": "7/10/2021",
"y": 462701
}
]
}
]
像這樣更簡單的東西,使用 JOLT:
[
{
"Date": "7/8/2021",
"Buy": 462853,
"Statistical": 462853,
"Sell": 462853
},
{
"Date": "7/9/2021",
"Buy": 462777,
"Statistical": 462777,
"Sell": 462777
},
{
"Date": "7/10/2021",
"Buy": 462701,
"Statistical": 462701,
"Sell": 462701
}
]
我嘗試了很多 jolt 代碼,但我不知道如何做最后一部分。 我寫了一些這樣的顛簸轉換:
[
{
"operation": "shift",
"spec": {
"*": {
"List": {
"*": {
"@(2,name)": "[&(3)].&1.name",
"x": "[&(3)].&1.Date",
"y": "[&(3)].&1.NAV"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": "[]"
}
}
}
]
但我不知道如何做最后一部分來旋轉名稱列。 name 列的值應根據 NAV 值進行透視。
您可以通過移位轉換中的Date
鍵表示的x
值累積name
鍵的鍵值對,然后通過使用基數轉換從每個數組中選擇最左邊的一個元素,這些元素在每個數組中已經重復相同的元素,例如
[
{
"operation": "shift",
"spec": {
"*": {
"List": {
"*": {
"x": "[&1].Date",
"y": "[&1].@(3,name)"
}
}
}
}
},
{
"operation": "cardinality",
"spec": {
"*": {
"Date": "ONE"
}
}
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.