Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. JSON parsen mit "." in Name (PM2.5)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON parsen mit "." in Name (PM2.5)

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      pehon last edited by pehon

      Hallo!

      Wie parse ich ein JSON mit "." in Name (PM2.5)? ", ', , \ hat alles nicht funktioniert.
      "BME280.Pressure" funktioniert prächtig.

      d72977cb-485b-4e2b-bbad-cf0c8b408145-image.png

      Das JSON sieht so aus:

      {
        "Time": "2024-08-17T17:20:06",
        "BME280": {
          "Temperature": 28.6,
          "Humidity": 41.3,
          "DewPoint": 14.2,
          "Pressure": 939.6
        },
        "VINDRIKTNING": {
          "PM2.5": 9
        },
        "PressureUnit": "hPa",
        "TempUnit": "C"
      }
      

      Vielen Dank für jeden Tipp

      Gruss,
      Peter

      Codierknecht OliverIO 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @pehon last edited by

        @pehon
        Nicht schön, aber selten 😉

        69c452a1-46ee-4dee-aa36-f773321849b0-grafik.png

        P 1 Reply Last reply Reply Quote 1
        • mickym
          mickym Most Active last edited by mickym

          Mit dem tollen JSONATA gehts natürlich auch (ohne das Objekt zu modifizieren):

          c537a99d-672c-44d4-a682-70d657688a31-image.png

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id="8=$*!H(xy1^`AZEQeNE~">obj</variable>
           </variables>
           <block type="variables_set" id="G_Y[5MO?v3$^X-B._z:@" x="-837" y="-487">
             <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">obj</field>
             <value name="VALUE">
               <block type="convert_json2object" id="LU~btZ#6N|C?@m{,*8yk">
                 <value name="VALUE">
                   <block type="text" id="|04(rPw[x5}ubC{C2Jjd">
                     <field name="TEXT">{   "Time": "2024-08-17T17:20:06",   "BME280": {     "Temperature": 28.6,     "Humidity": 41.3,     "DewPoint": 14.2,     "Pressure": 939.6   },   "VINDRIKTNING": {     "PM2.5": 9   },   "PressureUnit": "hPa",   "TempUnit": "C" }</field>
                   </block>
                 </value>
               </block>
             </value>
             <next>
               <block type="debug" id="[Ivw6n`%hQL/iAxa4j+K">
                 <field name="Severity">info</field>
                 <value name="TEXT">
                   <shadow type="text" id="j^?S}Ek^+Q7D@?R1ciE2">
                     <field name="TEXT">test</field>
                   </shadow>
                   <block type="variables_get" id="#kNF[rawL}nT#X[eq|-z">
                     <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">obj</field>
                   </block>
                 </value>
                 <next>
                   <block type="debug" id="V=C/eS,@rfzdGuU;uTmV">
                     <field name="Severity">info</field>
                     <value name="TEXT">
                       <shadow type="text" id="~ESy9DF#!ypJtn2tV)Y@">
                         <field name="TEXT">test</field>
                       </shadow>
                       <block type="convert_jsonata" id="]kfEur{(KoKg/w?rljo^">
                         <value name="EXPRESSION">
                           <shadow type="text" id="mFREFORPcxi$kE2;QBjZ">
                             <field name="TEXT">$.VINDRIKTNING.'PM2.5'</field>
                           </shadow>
                         </value>
                         <value name="TARGET">
                           <block type="variables_get" id="-%D2O;+HxL]ATxa.Fo7R">
                             <field name="VAR" id="8=$*!H(xy1^`AZEQeNE~">obj</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </next>
               </block>
             </next>
           </block>
          </xml>
          

          1 Reply Last reply Reply Quote 2
          • P
            pehon @Codierknecht last edited by

            @codierknecht
            Herzlichen Dank, funktioniert!

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @pehon last edited by

              @pehon Hatten wir hier auch schon: https://github.com/ioBroker/ioBroker.javascript/issues/1647

              Ist mit der aktuellen Syntax so nicht lösbar und müsste erweitert werden. Abgesehen von Workarounds wie oben vorgeschlagen.

              Chris87-ux created this issue in ioBroker/ioBroker.javascript

              open [Bug]: Blockly attributs in JSON show NULL #1647

              1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @pehon last edited by

                @pehon sagte in JSON parsen mit "." in Name (PM2.5):

                                                                                                                                            {                                                                                                                                                                                         
                

                wenn im attributnamen illegale Zeichen enzhalten sind, dann kann man keine Punktnotation machen und muss auf die alternativ adressierung ausweichen.

                VINDRIKTNING["PM2.5"]
                
                mickym haus-automatisierung 2 Replies Last reply Reply Quote 1
                • mickym
                  mickym Most Active @OliverIO last edited by

                  @oliverio sagte in JSON parsen mit "." in Name (PM2.5):

                  VINDRIKTNING["PM2.5"]

                  Bei Blockly funktioniert das aber nicht.

                  4debea58-f1c1-4e2a-8783-843b882275c8-image.png

                  Deswegen wurde das Issue ja wahrsscheinlich eröffnet.

                  1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @OliverIO last edited by

                    @oliverio sagte in JSON parsen mit "." in Name (PM2.5):

                    wenn im attributnamen illegale Zeichen enzhalten sind, dann kann man keine Punktnotation machen und muss auf die alternativ adressierung ausweichen.

                    Aber nicht mit der getAttr-Funktion in der JavaScript-Sandbox. Dort ist das aktuell nicht vorgesehen. Siehe verlinkter Issue oben.

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    423
                    Online

                    31.9k
                    Users

                    80.2k
                    Topics

                    1.3m
                    Posts

                    5
                    8
                    335
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo