Ankündigung

Einklappen
Keine Ankündigung bisher.

Gira X1 Ordner und Verzeichnisse für JSON Parser

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Gira X1 Ordner und Verzeichnisse für JSON Parser

    Hallo zusammen,

    ich versuche mich schon seit Tagen am JSON Parser für den Gira X1. Für das Auslesen einer JSON (bekomme ich über einen WebRequest) muss der richtige Pfad eingegeben werden.

    Ich kann einfach nicht rausfinden wo die json eigentlich abgelegt wird, bzw. finde ich nix dazu wie ich im Gira die Verzeichnisse einsehen kann. Eine Art Gira Browser wäre toll. Ich sehe auch im Forum immer wieder für die json parser Verzeichnisse. Wo kommen die alle her?

    Hat jemand vielleicht Rat?

    #2
    Der JSON-Text "fließt vom Ausgang des Web-Request-Bausteins in den Eingang des JSON-Parsers und wird dort in seine Datenschnipsel zerlegt. Was für Verzeichnisse willst Du da einsehen? Das, was im Baustein aussieht wie Verzeichnispfade sind XPath-A​usdrücke, mit denen die gewünschten Datenschnipsel adressiert werden. In der Online-Hilfe zum XML-/JSON-Parser ist das mit zahlreichen Beispielen erläutert. Im Netz findet man außerdem auch jede Menge Information über die Funktionsweise von Xpath.

    Kommentar


      #3
      Guten Tag,
      danke für die schnelle Rückmeldung.

      Ich kriege über ein WebRequest folgende JSON Antwort (ist eine Online-Profilbeschreibung meiner Easee Wallbox. Habe Name und Mail auf Mustermann geändert):

      {
      "userId": 431396,
      "eMail": "mustermann@mustermann.de",
      "phoneNo": "01234565789",
      "firstName": "Max",
      "lastName": "Mustermann",
      "country": "Germany",
      "countryId": "DE",
      "language": "de",
      "emailVerified": true,
      "subscribeNewProductUpdate": false,
      "subscribeProductUpdate": false,
      "isActive": true
      }

      Ich versuche zum Test aus dieser Antwort mit dem Parser nur das Wort Germany zu bekommen. Siehe unten:


      ​​Screenshot 2024-07-25 133813.png


      Aber egal was ich und in welcher Form als Pfad versuche, kriege ich immer diese Fehlermeldung.

      Bezüglich der Verzeichnisse in der XML/JSON Parser Hilfe bei Gira, verwirrt mich das da im Pfad z.B sowas steht:
      • Pfad 1: /weatherdata/forecast/time[position()<5]/precipitation/@value
      • Pfad 2: /weatherdata/forecast/time[position()<5]/temperature/@value
      ​Deshalb dachte ich mann kann einsehen in welche Verzeichnisse die JSON geladen wird.




      Angehängte Dateien

      Kommentar


        #4
        Hab das Problem lösen können.
        Schreibe mal rein, falls jemand das auch suchen wird.

        Die JSON Response, wie oben zu sehen, ist nicht verschachtelt. Die einzelnen Daten und Strings sind damit einfach mit /root/country oder /root/phoneNo​ usw abzugreifen.

        Vielen Dank.

        Kommentar


          #5
          Schön, dass Du Dein Problem lösen konntest. Was hat Dir am Schluss geholfen, die richtige Pfadangabe zu finden? Wie hätte Dir die Doku das leichter machen können?

          Außerdem muss ich noch ein bißchen den Korinthenkacker und Erklärbär geben -- wer dafür nix übrig hat, einfach nicht weiterlesen:

          Zitat von JFeer Beitrag anzeigen
          XML/JSON Parser Hilfe bei Gira
          Die gib's nicht bei GIRA, sondern -- nach der Installation des Bausteins -- im GIRA Projekt Assistent (GPA).

          Zitat von JFeer Beitrag anzeigen
          ​Deshalb dachte ich mann kann einsehen in welche Verzeichnisse die JSON geladen wird.
          Entweder haben wir hier ein grandioses Missverständnis oder zumindest Begriffsverwirrung. Die JSON wird in keine "Verzeichnisse" eingelesen. Ich denke, die Analogie zum Dateisystem, die sich aufgrund gewisser Ähnlichkeiten der Pfadangabe aufdrängt, verwirrt eher als dass sie nützt.

          Verzeichnisse gibt es in einem Dateisystem. Die einzige Ähnlichkeit von JSON mit einem Dateisystem besteht darin, dass beide eine hierarchische Baumstruktur mit "Dingen" enthalten. "Dinge" sind entweder Container (die enthalten weitere "Dinge" und heißen im Dateisystem Verzeichnisse) oder Endpunkte. Während Dateisysteme in der Regel genau eine Art von Container kennen (Verzeichnisse eben) gibt es in XML oder JSON zwei verschiedene Arten von Containern: Felder und Listen. Eine Liste ist so ähnlich wie ein Verzeichnis: Die enthaltenen Dinge werden über ihre Namen ausgewählt. In Feldern werden die enthaltenen Dinge über iher Positionsnummer ausgewählt.

          Die Endpunkte sind in einem Dateisystem Dateien (die selbst wieder fast beliebig komplexe Strukturen enthalten können). In einem JSON- oder XML-Dokument sind die Endpunkte dagegen vergleichsweise einfache Daten: Genau eine Zahl oder genau ein Textschnipsel. Das, was in einem Dateisystem der Verzeichnis- oder Dateiname ist, nennt man in XML oder JSON einen Schlüssel. Teile des Baums (der Hierarchie) wählt man durch Pfadangaben aus. Wie die meisten Dateisysteme verwendet auch XPath das Zeichen '/' als Trennzeichen zwischen den Hierarchieebenen. Aber damit hören die Gemeinsamkeiten auch fast schon wieder auf. Wildcards -- also die Möglichkeit mehrere Elemente auf einmal auszuwählen -- funktionieren z. B. völlig verschieden. XPath ist da viel flexibler als Dateipfade, aber oft auch etwas schwierig zu verstehen. Deshalb habe ich in die Doku des Parser-Bausteins einige Beispiele rein geschrieben; weitere findet man zuhauf im Netz.
          Zuletzt geändert von hyman; 26.07.2024, 15:27.

          Kommentar


            #6
            Zitat von hyman Beitrag anzeigen
            Was hat Dir am Schluss geholfen, die richtige Pfadangabe zu finden? Wie hätte Dir die Doku das leichter machen können?
            Die Doku und Google suche waren wenig hilfreich. Es gibt in der Parser Logik zwar eine Einleitung und Beispiele, diese haben aber nicht viel gebracht, weil die ohne simple Beispiele direkt "hart" reinsteigen. Natürlich stand in der Doku, dass die Response immer mit root beginnt. Aber ohne das zu kennen steht man auch im Wald (zumal in den Beispielen nix von root zu sehen ist).

            Die Lösung war ein YouTube Video von SplendidMinds, in der es um einen smarten Wasserzähler ging. Die Daten kamen als JSON zurück und es wurde kurz gezeigt wie man diese mit dem Parser abgreift. Diese erklärung habe ich dann bei mir nutzen können.

            Vielen Dank.

            Kommentar

            Lädt...
            X