Ich benutze d3.json, um ein Dataset zu dekodieren, in dem der Schlüssel/die Werte unbekannt sind. Ich muss die Zahlenwerte in Zahlen umwandeln und den Rest in Ruhe lassen.JSON-Werte in Zahl konvertieren, wenn Schlüssel/Werte dynamisch sind
Meine JSON sieht wie folgt aus:
[{"file":"morning","row_total":"1095935","attr1":"79","attr2":""},
{"file":"noon","row_total":"221167","attr1":"174","attr2":"114"},
{"file":"night","row_total":"1317102","attr1":"253","attr2":"114"}]
Es ist aus einer PHP-Datei mit d3.json lesen. Für jeden Wert, der (ohne werfen NaN) kann, muss ich eine Zahl (d3 verwendet das + Symbol für diese) konvertieren:
d3.json("getData.php", function(error, data) {
if (error) throw error;
data.forEach(function(d) {
if(!isNaN(d.i = +d.i)
d.i = +d.i
)})
Offensichtlich gibt es ein Problem mit meinem Test/Looping-Logik. Ich würde wirklich eine Anleitung hier schätzen.
Vielen Dank!
tymeJV, danke für den Tipp. Ich bin noch nicht ganz da ... die Daten werden nicht transformiert. Hier ist, wofür ich meinen Code geändert habe: data.forEach (function (d) {if (! IsNaN (d)) {d = + d}}); – Phoebe
@Phoebe - Hat eine Änderung vorgenommen - Ihre Frage wurde zunächst falsch gelesen. – tymeJV
Ja! Ich danke dir sehr! Das ist ein großartiges Modell, von dem ich endlich die passende Logik verstehen kann. Sehr geschätzt. – Phoebe