NEWS
[gelöst] Javascript Objekte Zugriff
-
var obj = JSON.parse(json); for(var index in obj) { // var indexObj = JSON.stringify(obj); if (/^fullcalendar/gi.test(index)) { log(index); log(JSON.stringify(obj[index])); } } ```` `Das Erzeugen des riesigen Objektes per JSON.parse(json) würde ich sparen (Speicherbedarf !) und die IDs folgendermassen ermitteln:
var pos = 0; do { pos = json.indexOf('fullcalendar.0.20', pos + 60); var id = json.substr(pos, 35); if(id.indexOf('pos') == -1 && id.length == 35) { log(id); // Hier kann mit getObject(id) die Auswertung erfolgen } } while(pos != -1);Wenn man die ID hat, kommt man mit getObject(id) an alle Eigenschaften.
-
Dann kommt aber leider die Fehlermeldung
TypeError: json.substr is not a functionEdit:
Habs jetzt hinbekommen anscheinend ist 'json' ein Objekt und kein String. (Stimmt das ?)
Deshalb hab ichs jetzt mal so probiert (php Kentnisse sei Dank :D)
json.toString().substrUnd es geht
-
Bei mir funktioniert https://wiki.selfhtml.org/wiki/JavaScript/Objekte/String/substr.
-
-
Die Fehlermeldung lautet aber: `
Vielleicht hat node.js fs ein Problem mit der Dateiendung .json ?Unter Windows habe ich mal die Datei kopiert und dann die Kopie eingelesen, was funktioniert
exec('copy C://Program Files//ioBroker//iobroker-data//objects.json G://opt//iobroker//iobroker-data//objects.test'); const datei = "G://opt//iobroker//iobroker-data//objects.test";Und Du hast recht: Man muss .toString() anwenden
json = json.toString(); var pos = 0; do { -
Wenn ich die Datei kopiere und umbenenne in z.B nur "obj.json" im gleichen Verzeichnis, dann funktioniert das ganze :D
Macht irgendwie keinen Sinn, wiee ich finde
Edit:
Diese Funktion gibt den Fehler aus:
mods.fs.readFile = function () { if (mods.path.normalize(arguments[0]).replace(/\\/g, '/').indexOf('-data/objects.json') !== -1) { if (adapter) { adapter.log.error('May not read ' + arguments[0]); } else { console.error('May not read ' + arguments[0]); } throw new Error('Permission denied'); } return mods.fs._readFile.apply(this, arguments); };Die if-Abfrage prüft ob der angegebene Pfad '-data/objects.json' enthält, dass ist anscheinend nicht gewollt ?
Gruß Finn
Edit2: habs gelöst. Ich kopiere einfach die Datei in eine obj.json und lese dann diese aus.
Vielen Dank für eure Hilfe :D :D
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden