NEWS
JSON zu Objekte
-
@kellerassel75 sagte: Solange nur ein Anruf ist:
Ist es wirklich so, dass es dann nur ein Objekt ohne Array-Klammern ist ?
@paul53
Nein das habe ich so geändert! -
@paul53
Nein das habe ich so geändert!Kannst Du es dann selber erweitern?
//Script zur Zerlegung der JSON Daten in einzelne Datenpunkte //Idee: Chaot // Umsetzung: paul53 var json = "tr-064.0.calllists.missed.json"; var Nummer = "javascript.0.Nummer"; var Datum = "javascript.0.Datum"; var Name = "javascript.0.Name"; const MaxAnrufe = 4; on(json, function(dp) { var obj = JSON.parse(dp.state.val); const i_end = obj.length < MaxAnrufe ? obj.length : MaxAnrufe; for (let i=0; i<i_end; i++) { const o = obj[i]; console.warn(o); const dp_nummer = Nummer+"_"+i; console.warn(dp_nummer); setState(dp_nummer,o.caller); } // setState(Nummer, parseFloat(obj.caller)); // setState(Datum, parseFloat(obj.date)); // setState(Name, parseFloat(obj.name)); }); for (let i=0; i<MaxAnrufe; i++) { const dp_nummer = Nummer+"_"+i; createState(dp_nummer); } -
Kannst Du es dann selber erweitern?
//Script zur Zerlegung der JSON Daten in einzelne Datenpunkte //Idee: Chaot // Umsetzung: paul53 var json = "tr-064.0.calllists.missed.json"; var Nummer = "javascript.0.Nummer"; var Datum = "javascript.0.Datum"; var Name = "javascript.0.Name"; const MaxAnrufe = 4; on(json, function(dp) { var obj = JSON.parse(dp.state.val); const i_end = obj.length < MaxAnrufe ? obj.length : MaxAnrufe; for (let i=0; i<i_end; i++) { const o = obj[i]; console.warn(o); const dp_nummer = Nummer+"_"+i; console.warn(dp_nummer); setState(dp_nummer,o.caller); } // setState(Nummer, parseFloat(obj.caller)); // setState(Datum, parseFloat(obj.date)); // setState(Name, parseFloat(obj.name)); }); for (let i=0; i<MaxAnrufe; i++) { const dp_nummer = Nummer+"_"+i; createState(dp_nummer); }@ente34
Danke! Ich werde es Versuchen! -
@paul53
Nein das habe ich so geändert!@kellerassel75 sagte: 4 Anrufe sollte reichen!
Vorschlag (nicht getestet):
const idJson = "tr-064.0.calllists.missed.json"; const path = "0_userdata.0.Telefon.verpasst-"; if(!existsState(path + '0.Nummer')) { for(let i = 0; i < 4; i++) { createState(path + i + '.Nummer', '', {type: 'string', name: 'Nummer', role: 'info'}); createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); createState(path + i + '.Name', '', {type: 'string', name: 'Name', role: 'info'}); } } on(idJson, function(dp) { let arr = JSON.parse(dp.state.val); let anzahl = arr.length; if(anzahl > 4) anzahl = 4; for(let i = 0; i < anzahl; i++) { setState(path + i + '.Nummer', arr[i].caller, true); setState(path + i + '.Datum', arr[i].date, true); setState(path + i + '.Name', arr[i].name, true); } }); -
@kellerassel75 sagte: 4 Anrufe sollte reichen!
Vorschlag (nicht getestet):
const idJson = "tr-064.0.calllists.missed.json"; const path = "0_userdata.0.Telefon.verpasst-"; if(!existsState(path + '0.Nummer')) { for(let i = 0; i < 4; i++) { createState(path + i + '.Nummer', '', {type: 'string', name: 'Nummer', role: 'info'}); createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); createState(path + i + '.Name', '', {type: 'string', name: 'Name', role: 'info'}); } } on(idJson, function(dp) { let arr = JSON.parse(dp.state.val); let anzahl = arr.length; if(anzahl > 4) anzahl = 4; for(let i = 0; i < anzahl; i++) { setState(path + i + '.Nummer', arr[i].caller, true); setState(path + i + '.Datum', arr[i].date, true); setState(path + i + '.Name', arr[i].name, true); } }); -
@kellerassel75 sagte: 4 Anrufe sollte reichen!
Vorschlag (nicht getestet):
const idJson = "tr-064.0.calllists.missed.json"; const path = "0_userdata.0.Telefon.verpasst-"; if(!existsState(path + '0.Nummer')) { for(let i = 0; i < 4; i++) { createState(path + i + '.Nummer', '', {type: 'string', name: 'Nummer', role: 'info'}); createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); createState(path + i + '.Name', '', {type: 'string', name: 'Name', role: 'info'}); } } on(idJson, function(dp) { let arr = JSON.parse(dp.state.val); let anzahl = arr.length; if(anzahl > 4) anzahl = 4; for(let i = 0; i < anzahl; i++) { setState(path + i + '.Nummer', arr[i].caller, true); setState(path + i + '.Datum', arr[i].date, true); setState(path + i + '.Name', arr[i].name, true); } });@paul53
Danke passt!Echt Super! Ich bin begeistert! Danke an alle!
Ich hätte nicht gedacht das ich so schnell Hilfe bekomme!
Ihr seid Super! Macht weiter so!:clap:
Ich werde hier noch viel lernen hoffe ich!
:grinning:
Falko