NEWS
JSON beep, Pretty.JSON. ..
-
Bei meinem Projekt möchte ich den simple-API Adapter verwenden. Um eine JSON-konforme Darstellung in Safari zu erhalten, habe ich die Plugins JSON Peep und Pretty.JSON installiert.
Leider - egal welches Plugin ich auch aktivier - wird mir beim Aufruf der Oberfläche des simple-api Adapter keine Anzeige im JSON-Format angeboten.
Was mag ich falsch machen?
-
-
Pretty.JSON
es ist schwer zu sagen, wie diese erweiterungen funktionieren.
da ja keine datei mit einer dateiendung verwendet wird, kann der browser
den inhaltstyp eigentlich nur über den header content type ermitteln.
simpleapi sendet diesen aber richtig.von daher alles richtig.
wenn es bei safari auch so developer tools gibt, kannst du da mal schauen, ob dort eine fehlermeldung auftaucht oder der contenttyp richtig übermittelt wird -
Vielen Dank für eure Hinweise.
Ich habe in einem Video von @haus-automatisierung (Matthias Kleine) gesehen, wie dort die Aufrufe des simple-api Adapters JSON-formatiert ausgegeben wurden. Leider wurde nicht erklärt, wie man dies erreichen kann, bzw. welches Browser-Plugin verwendet wurde.
Json Peep verlangt in der Tat explizit die Dateiendung *.json und dürfte somit für diesen Zweck ungeeignet sein. Leider reichen meine Kenntnisse (noch) nicht aus, hinsichtlich Pretty.JSON mich auf die Fehlersuche machen zu können.
-
Ich habe in einem Video von @haus-automatisierung (Matthias Kleine) gesehen, wie dort die Aufrufe des simple-api Adapters JSON-formatiert ausgegeben wurden
JSON wird so oder so im Browser dargestellt. Die Erweiterung JSON Peep formatiert das Ergebnis nur etwas schöner und hebt die Eigenschaften z.B. farblich hervor. Am Ergebnis ändert das aber nichts.
Welchen Aufruf führst Du denn genau durch (URL)?
Json Peep verlangt in der Tat explizit die Dateiendung *.json
Das stimmt nicht. Primär wird der Content-Type Header genutzt.
-
@haus-automatisierung said in JSON beep:
@
Welchen Aufruf führst Du denn genau durch (URL)?Ich rufe die Weboberfläche vom simple_api Adapter über http://<lokale IP>:8087 auf.
Json Peep verlangt in der Tat explizit die Dateiendung *.json
Das stimmt nicht. Primär wird der Content-Type Header genutzt.
Aber genau so steht‘s in der Anleitung zu diesem Plugin beschrieben. Sei‘s d‘rum. Das Plugin Pretty.JSON tut‘s auch nicht, obwohl es hier heißt, dass der Content-Type Header benutzt würde.
Ich bin ratlos.
-
@legro sagte in JSON beep, Pretty.JSON. ..:
Ich rufe die Weboberfläche vom simple_api Adapter über http://<lokale IP>:8087 auf.
Und was erwartest Du in dem Fall von JSON-Peep? Du musst schon auf eine Ressource zugreifen, welche Dir JSON zurückgibt.
-
@haus-automatisierung said in JSON beep, Pretty.JSON. ..:
Und was erwartest Du in dem Fall von JSON-Peep? Du musst schon auf eine Ressource zugreifen, welche Dir JSON zurückgibt.
Als begeisterter Teilnehmer deiner ioBroker Masterkurse, in denen du immer wieder JSON-formatierte Ausgaben erzeugst/verwendest, möchte ich dies auch für meine Zwecke nutzen.
Als ich damit begann, den simple-api Adapter zu nutzen, erinnerte ich mich daran, dass du diesen Adapter in einem deiner Kurse vorgestellt und eine JSON-formatierte Ausgabe genutzt hattest. Leider fand ich dieses Video nicht mehr und versuchte selbst mein Glück - mit viel wenig Erfolg. Daher hier meine Nachfrage nach JSON Peep und Co.
Soeben bin ich nun doch noch in deinem alten ioBroker Masterkurs aus 2019 fündig geworden. Leider kann ich nach Ansehen des Videos nicht erkennen, wie du dort die JSON-formatierte Ausgabe erzeugst.
-
@legro sagte in JSON beep, Pretty.JSON. ..:
wie du dort die JSON-formatierte Ausgabe erzeugst.
Wie gesagt, indem ich einfach eine Ressource abfrage, welchen JSON zurück liefert. Bitte zeig doch mal deine komplette URL - dann kann man auch helfen.
-
Erst einmal: vielen Dank für deine Unterstützung!
So sieht das bei dir ..
.. und so bei mir aus ..
Dieses Kraut&Rüben-Format wäre ich nur allzu gerne los.
Ich mache also doch dasselbe wie auch du in deinem ioBroker Masterkurs aus 2019.
Dies ist jedoch nur ein Beispiel von mehreren, in denen das Ganze bei mir nicht funktioniert. Ich hatte vor Monaten mich schon einmal an diesen Browser Plugins versucht. Als ich nun mich mit simple-api beschäftigte, fiel mir wieder ein, dass ich das bei dir einmal gesehen hatte.
Nachtrag/Hintergrund ..
Nachdem Mobotix hinsichtlich MQTT - von wegen Oktober '22 - offenbar doch so schnell nicht aus den Puschen kommt, habe ich nun begonnen, die HTTP-API zu verwenden.
-
@legro sagte in JSON beep, Pretty.JSON. ..:
So sieht das bei dir ..
Da habe ich damals noch Chrome genutzt. Da gibt es auch verschiedene Plugins für JSON. Mit JSON Peep funktioniert das an der Stelle nicht, weil der falsche Content-Type zurückgeliefert wird (wie im Thread schon angemerkt muss der passen):
HTTP/1.1 200 OK Connection: keep-alive Content-Type: text/html; charset=utf-8 Date: Thu, 12 Jan 2023 11:24:26 GMT Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept Keep-Alive: timeout=5 Content-Length: 1002 Access-Control-Allow-Origin: *
Ist ein Bug im Adapter.
-
@haus-automatisierung said in JSON beep, Pretty.JSON. ..:
.. Ist ein Bug im Adapter.
Danke für die klärende Antwort. Da hätte ich lange suchen können. Da werde ich wohl darauf hoffen müssen, dass ein issue auf GitHub dem abhilft. Oder kann man selbst etwas dagegen tun?
Mittlerweile habe ich mich für Pretty.JSON entschieden und das zugehörige Symbol "j" bzw. {j} in die Symbolleiste von Safari integriert. Beim simple-api Adapter bleibt das Symbol "j" immer nur ausgegraut/deaktiviert.
-
@legro sagte in JSON beep, Pretty.JSON. ..:
Oder kann man selbst etwas dagegen tun?
Einen Pull-Request erstellen, welcher diese Logik ändert: https://github.com/ioBroker/ioBroker.simple-api/blob/4b6d02c8a925316b00bde5c715c55596053eb7a5/lib/simpleapi.js#L641-L644
oder hier als letzten Parameter
false
übergibt (oder auchvalues.prettyPrint
aus den Parametern):Ganz einfach.