Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Hättest du eine Idee wie man so etwas abfangen kann ?
Meinst Du die Fehlermeldung im Error-Log?, Ja, haette ich... mein hostcheck LBS macht das zB.
Allerdings musst Du Dich dann allein um das Loggen von Fehlern kuemmern - also von Meldungen die eigentlich ins Edomi-Errorlog gehoeren. Ich taete das in Deinem Fall eigentlich nicht empfehlen...
vielleicht ersparst du mir vieeeele Stunden des Probierens :-) ?
Ich habe eine JSON mit Array (das erste Mal ;-)
Die „standard“ JSON ist mittlerweile kein Problem aber mit dem Array ...
Hier der Code - was ich tun möchte:
An einem Eingang des LBS liegt der JSON-String ($json) an, am zweiten gebe ich z.B. den Namen ein „Computer“ oder „ATV“ oder … D.h., für jeden AirPlayLautsprecher ein LBS ...
Jetzt soll der LBS den String nach Computer „durchsuchen“ und hier die drei Werte am Ausgang zurückgeben:
‚name‘
‚selected‘
‚sound volume'
wintermutevielleicht ersparst du mir vieeeele Stunden des Probierens :-) ?
Ma sehn
Der Schnipsel hier ist weder getestet, noch wird er so sauber laufen, aber als Anhaltspunkt sollte er reichen:
PHP-Code:
$j=json_decode($json,TRUE); $s="Computer"; foreach ($j['devices'] as $device) { if ($device['name']==$s) break; }
$j ist dein JSON-String, $s ist der Name den Du suchst (also Deine beiden Eingaenge), am Ende liegt in $device das Array, auf das das Suchmuster passt. In $device['sound volume'] also zB die Lautstaerke.
Wird nix gefunden, liegt am Ende in $device dann nicht das gefundene Device (mehr oder minder logischerweise ), sondern das lezte im JSON. Das musste noch entsprechend abfangen, war ich jetzt zu faul zu
Es beendet die foreach Schleife. Das spart nicht nur unnoetige Durchlaeufe, in meiner Version bewirkt es auch, dass am Ende in $device der betreffende Teil des JSON Arrays liegt.
wenn man jetzt eine JSON "umgekehrt" auslesen möchte - um eine Art Liste zu haben, z.B. liste mir alle Namen auf die unter 'name' zu finden sind ... ist das auch möglich ?
a. wäre das so ein Code (bin derzeit nicht zuhause um zu testen ...) ?
b. wie könnte man via PHP jetzt die Einzelergebnise (Computer, ATV, ...) an eine KO á la Temperatur senden um diese in einem Archiv zu speichern ?
PHP-Code:
foreach ($json AS $key => $name) { if ( $key == 'name') { setLogicLinkAusgang($id,1,$name['name']); } }
oder so:
PHP-Code:
foreach ($json AS $key => $name) { if ( $key -> name == 'name') { setLogicLinkAusgang($id,1,$name['name']); } }
Das Problem ist eher irgendwie die Namen fest den Ausgaengen zuzuordnen, denke ich...
Na ja, eigentlich sollte es nur einen Ausgang geben, WENN es möglich ist ... der auf ein KO schreibt.
Vielleicht mit einer FOR-Schleife die das Array durchgeht mit Pause zwischen jedem Druchlauf ?
Na ja, eigentlich sollte es nur einen Ausgang geben, WENN es möglich ist ... der auf ein KO schreibt.
Vielleicht mit einer FOR-Schleife die das Array durchgeht mit Pause zwischen jedem Druchlauf ?
Im LBS Teil geht das definitiv nicht (da werden die Ausgaenge nur einmalig am Ende gesetzt, vorherige Werte gehen also verloren, es bleibt nur der letzte uebrig), im EXEC muesste es (nach meinem Verstaendnis) wegen der Asynchronitaet hinhauen, hab ich aber selber noch nicht ausprobiert...
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar