我正在嘗試轉換以下內容
[
{
"PLCTime": "1643804542000",
"LevelID": "53.99.2",
"Data1Type": "Axis1 Dist",
"Data1": "1.0",
"Data2Type": "Axis2 Dist",
"Data2": "2.0",
"Data3Type": "Axis3 Dist",
"Data3": "3.0",
"Data4Type": "Axis4 Dist",
"Data4": "4.0",
"Data5Type": "Axis5 Dist",
"Data5": "5.5",
"Data6Type": "Axis6 Dist",
"Data6": "6.0"
/// etc 20 data points
}
]
以實作所需的輸出
{
"assetId": "53.99.2",
"dataPoints": [
{
"timestamp": "1643804542000",
"measures": [
{
"name": "Axis1 Dist",
"value": 1
},
{
"name": "Axis2 Dist",
"value": 2
}
]
}
]
}
LevelID 變成“assetID”,PLCTime 變成“timestamp”
到目前為止,我有一個規范:
[
{
"operation": "shift",
"spec": {
"*": {
"LevelID": "LevelID",
"*": "dataPoints."
}
}
},
{
"operation": "sort",
"spec": {
"*": ""
}
}
]
這將級別 ID 帶到了頂層,并為我提供了資料點陣列,但從這里我正在努力從下面的資料中創建對。
uj5u.com熱心網友回復:
您可以使用兩個連續的移位轉換,其中應首先將帶有鍵名的屬性與屬性Data*Type分開,然后通過生成的陣列(和)Data*的各自索引將它們再次組合回來,并使用前綴以生成所需的新陣列鍵名稱(,),例如namevaluemeasuresdataPoints
[
{
"operation": "shift",
"spec": {
"*": {
"Data*Type": {
"@(0)": "name"
},
"Data*": {
"@(0)": "value"
},
"*": "&"
}
}
},
{
"operation": "shift",
"spec": {
"LevelID": "assetId",
"PLCTime": "dataPoints[].timestamp",
"name": {
"*": {
"@": "dataPoints[0].measures[&].&2",
"@(3,value[0])": "dataPoints[0].measures[&].value"
}
}
}
}
]
網站上的演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429796.html
