NEWS
JSON zu Objekte
-
@kellerassel75
wie bereits oben gesagt, in Zeile 19 hast Du das obj in der Hand ... -
@kellerassel75 sagte: richtige Datenpunte - Zahlen nicht JSON!
Du meinst Zeichenketten?
@kellerassel75 sagte in JSON zu Objekte:
Datenpunt vorletzter- caller
Datenpunt vorletzter- date
Datenpunt vorletzter- nameWieweit sollen sie zurück reichen?
-
@paul53
Ich denke 4 Anrufe sollte reichen! -
@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! -
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! -
@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
Mir gefällt es ... -
@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!Ich werde hier noch viel lernen hoffe ich!
Falko