NEWS
JSON in taugliches E-Charts umwandeln
-
Kann mir jemand erklären, oder zeigen, wie ich dieses JSON-Format:
[ { "from": "2023-11-01T00:00:00.000+01:00", "to": "2023-12-01T00:00:00.000+01:00", "cost": 165.1500357416, "unitPrice": 0.24995, "unitPriceVAT": 0.039908, "consumption": 660.731, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2023-12-01T00:00:00.000+01:00", "to": "2024-01-01T00:00:00.000+01:00", "cost": 218.4211066317, "unitPrice": 0.21144, "unitPriceVAT": 0.033759, "consumption": 1033.019, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-01-01T00:00:00.000+01:00", "to": "2024-02-01T00:00:00.000+01:00", "cost": 253.5435962045, "unitPrice": 0.239839, "unitPriceVAT": 0.038294, "consumption": 1057.139, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-02-01T00:00:00.000+01:00", "to": "2024-03-01T00:00:00.000+01:00", "cost": 152.2786025299, "unitPrice": 0.218416, "unitPriceVAT": 0.034873, "consumption": 697.194, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-03-01T00:00:00.000+01:00", "to": "2024-04-01T00:00:00.000+02:00", "cost": 129.0548423584, "unitPrice": 0.231925, "unitPriceVAT": 0.03703, "consumption": 556.45, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-04-01T00:00:00.000+02:00", "to": "2024-05-01T00:00:00.000+02:00", "cost": 103.0426810056, "unitPrice": 0.234781, "unitPriceVAT": 0.037486, "consumption": 438.888, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-05-01T00:00:00.000+02:00", "to": "2024-06-01T00:00:00.000+02:00", "cost": 56.86217579, "unitPrice": 0.238555, "unitPriceVAT": 0.038089, "consumption": 238.361, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-06-01T00:00:00.000+02:00", "to": "2024-07-01T00:00:00.000+02:00", "cost": 65.8974361801, "unitPrice": 0.24466, "unitPriceVAT": 0.039063, "consumption": 269.343, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-07-01T00:00:00.000+02:00", "to": "2024-08-01T00:00:00.000+02:00", "cost": 56.0706386387, "unitPrice": 0.235564, "unitPriceVAT": 0.037611, "consumption": 238.027, "consumptionUnit": "kWh", "currency": "EUR" }, { "from": "2024-08-01T00:00:00.000+02:00", "to": "2024-09-01T00:00:00.000+02:00", "cost": 61.7315118714, "unitPrice": 0.245993, "unitPriceVAT": 0.039276, "consumption": 250.948, "consumptionUnit": "kWh", "currency": "EUR" } ]
in dieses JSON Format:
[ {"ts": 1675887847000, "val": 45}, {"ts": 1675887848000, "val": 77}, {"ts": 1675887849000, "val": 180} ]
umwandeln kann?
Hintergrund:
ich möchte meine Tibber/Stromkosten als Balkendiagramm in E-Charts darstellen.Im Besten Fall, schaffe ich es die Monate der letzten Jahre nebeneinander darzustellen um einen vergleich zu erhalten.
Besten Dank im Voraus.
-
@maas-meister sagte: in dieses JSON Format umwandeln kann?
Versuche es mal so:
// IDs eintragen const idSrc = ''; const idDst = ''; on(idSrc, function(dp) { const src = JSON.parse(dp.state.val); const dst = []; for(let i = 0; i < src.length; i++) { const obj = { ts: new Date(src[i].from).getTime(), val: Math.round(src[i].cost) }; dst.push(obj); }; setState(idDst, JSON.stringify(dst), true); });
-
Sowas macht man viel einfacher mit JSONATA.
$.{"ts": $toMillis(from),"val":$round(cost)}
Hier zum Probieren: https://try.jsonata.org/jGIQQKIcU
Hier JSONATA in JS:
const obj = JSON.parse('[{"from":"2023-11-01T00:00:00.000+01:00","to":"2023-12-01T00:00:00.000+01:00","cost":165.1500357416,"unitPrice":0.24995,"unitPriceVAT":0.039908,"consumption":660.731,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-12-01T00:00:00.000+01:00","to":"2024-01-01T00:00:00.000+01:00","cost":218.4211066317,"unitPrice":0.21144,"unitPriceVAT":0.033759,"consumption":1033.019,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-01-01T00:00:00.000+01:00","to":"2024-02-01T00:00:00.000+01:00","cost":253.5435962045,"unitPrice":0.239839,"unitPriceVAT":0.038294,"consumption":1057.139,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-02-01T00:00:00.000+01:00","to":"2024-03-01T00:00:00.000+01:00","cost":152.2786025299,"unitPrice":0.218416,"unitPriceVAT":0.034873,"consumption":697.194,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-03-01T00:00:00.000+01:00","to":"2024-04-01T00:00:00.000+02:00","cost":129.0548423584,"unitPrice":0.231925,"unitPriceVAT":0.03703,"consumption":556.45,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-04-01T00:00:00.000+02:00","to":"2024-05-01T00:00:00.000+02:00","cost":103.0426810056,"unitPrice":0.234781,"unitPriceVAT":0.037486,"consumption":438.888,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-05-01T00:00:00.000+02:00","to":"2024-06-01T00:00:00.000+02:00","cost":56.86217579,"unitPrice":0.238555,"unitPriceVAT":0.038089,"consumption":238.361,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-06-01T00:00:00.000+02:00","to":"2024-07-01T00:00:00.000+02:00","cost":65.8974361801,"unitPrice":0.24466,"unitPriceVAT":0.039063,"consumption":269.343,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-07-01T00:00:00.000+02:00","to":"2024-08-01T00:00:00.000+02:00","cost":56.0706386387,"unitPrice":0.235564,"unitPriceVAT":0.037611,"consumption":238.027,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2024-08-01T00:00:00.000+02:00","to":"2024-09-01T00:00:00.000+02:00","cost":61.7315118714,"unitPrice":0.245993,"unitPriceVAT":0.039276,"consumption":250.948,"consumptionUnit":"kWh","currency":"EUR"}]') console.log (await jsonataExpression(obj,'$.{"ts": $toMillis(from),"val":$round(cost)}'))
oder wenn Du lieber Puzzeln willst:
Hier der Import:
-
Mega, genau das habe ich gesucht.
Funktionierte auf Anhieb - baue ich mir jetzt nach meinen wünschen zusammen.Besten Dank