Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Blockly JSON Eintrag ändern

    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

    [gelöst] Blockly JSON Eintrag ändern

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @rantanplan last edited by

      @rantanplan sagte: Anstatt den Nachnamen zu ändern

      Blockly_temp.JPG

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

        67fdce23-3452-41c1-be66-2fa1acffb2f6-image.png

        $~>|Name|{"Nachname":"geänderter Nachname"}|
        

        Hier wieder Dein Blockly zurück mit den Ergänzungen:

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</variable>
           <variable id="5^q]{Sfyr#dahNiN]R=@">Test</variable>
         </variables>
         <block type="comment" id="EZvg/*|7xh=vW53L/Gy$" x="-612" y="-462">
           <field name="COMMENT">JSON Original setzen</field>
           <next>
             <block type="variables_set" id="[cVDQy=1v{H-!^H/{!DG">
               <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
               <value name="VALUE">
                 <block type="convert_json2object" id="!?x#HIB~ZuFM#W`#]z3C">
                   <value name="VALUE">
                     <block type="text" id="0Dia]flH6dkI65v*?aV1">
                       <field name="TEXT">[ &#9;{ &#9;&#9;"id": 1, &#9;&#9;"Name": { &#9;&#9;&#9;"Vorname": "Henri-1", &#9;&#9;&#9;"Nachname": "Mustermann-1" &#9;&#9;}, &#9;&#9;"Anschrift": { &#9;&#9;&#9;"Strasse": "Musterstrasse-1", &#9;&#9;&#9;"Ort:": "Musterort-1" &#9;&#9;} &#9;}, &#9;{ &#9;&#9;"id": 2, &#9;&#9;"Name": { &#9;&#9;&#9;"Vorname": "Henri-2", &#9;&#9;&#9;"Nachname": "Mustermann-2" &#9;&#9;}, &#9;&#9;"Anschrift": { &#9;&#9;&#9;"Strasse": "Musterstrasse-2", &#9;&#9;&#9;"Ort:": "Musterort-2" &#9;&#9;} &#9;} ]</field>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="debug" id="fkNpN*WtWl3Fb2%q8nEa">
                   <field name="Severity">info</field>
                   <value name="TEXT">
                     <shadow type="text" id="5V@1a4j+tNfTC^m`J8xd">
                       <field name="TEXT">*************Original***********************************</field>
                     </shadow>
                   </value>
                   <next>
                     <block type="debug" id="z1`|3d!r`x#;|_[hfk!s">
                       <field name="Severity">info</field>
                       <value name="TEXT">
                         <shadow type="text" id="*!}^.x?T/o7pW_u6@AJ.">
                           <field name="TEXT">test</field>
                         </shadow>
                         <block type="variables_get" id="T%?wOC@q?lZP(;^3T2]i">
                           <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                         </block>
                       </value>
                       <next>
                         <block type="comment" id="#]blWwhzWtX]YPsfsrl0">
                           <field name="COMMENT">ID auswählen</field>
                           <next>
                             <block type="variables_set" id="6Ac9kNIPsPtgZ8rup7!T">
                               <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                               <value name="VALUE">
                                 <block type="convert_jsonata" id="fpXEZ=|fVK4[tNsaaO03">
                                   <value name="EXPRESSION">
                                     <shadow type="text" id="]D!S,2:xm^Q?r{A}9Bd=">
                                       <field name="TEXT">$[id=2]</field>
                                     </shadow>
                                   </value>
                                   <value name="TARGET">
                                     <block type="variables_get" id="+fIp5lfA+nfc^mLzl4G$">
                                       <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <next>
                                 <block type="debug" id="5+/GJ(P-|CMB#B1Z)mXq">
                                   <field name="Severity">info</field>
                                   <value name="TEXT">
                                     <shadow type="text" id="YeyR.v8_|O3DLwmd6]=F">
                                       <field name="TEXT">*************gewählte id aus Test***********************************</field>
                                     </shadow>
                                   </value>
                                   <next>
                                     <block type="debug" id="sVBBMnoP3WU;i^.vpkUK">
                                       <field name="Severity">info</field>
                                       <value name="TEXT">
                                         <shadow type="text" id="jjF5++FKq9oUup##S3;i">
                                           <field name="TEXT">test</field>
                                         </shadow>
                                         <block type="variables_get" id="]yqvj=AwtGWNj4ceyf1.">
                                           <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="debug" id="*,IKqGYVj_KvEF=+-S(@">
                                           <field name="Severity">info</field>
                                           <value name="TEXT">
                                             <shadow type="text" id="RC`arNyLE9ok[SDiDSEE">
                                               <field name="TEXT">*****************Nachname aus id Test****************************</field>
                                             </shadow>
                                           </value>
                                           <next>
                                             <block type="debug" id="L|BS,Me79{YBXCMc8iBi">
                                               <field name="Severity">info</field>
                                               <value name="TEXT">
                                                 <shadow type="text" id="jumUJ[i3TJAMVfVR+ATz">
                                                   <field name="TEXT">test</field>
                                                 </shadow>
                                                 <block type="get_attr" id="PrG6I%X6-N_$`STD$M~q">
                                                   <value name="PATH">
                                                     <shadow type="text" id="P$+/{k4Nn*[nsEg)HwCs">
                                                       <field name="TEXT">Name.Nachname</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="OBJECT">
                                                     <shadow type="get_object" id="lox}0weulq;I(P1ms1*u">
                                                       <field name="OID">Object ID</field>
                                                     </shadow>
                                                     <block type="variables_get" id="*rkDqOkD5O(59;2=v6-M">
                                                       <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="comment" id="pEFVc^J49;#t.tbk[#4:">
                                                   <field name="COMMENT">Nachname ändern</field>
                                                   <next>
                                                     <block type="object_set_attr" id=",dByN[roU:;u[3Qp`q5%">
                                                       <field name="ATTR">Name.Nachname</field>
                                                       <value name="OBJECT">
                                                         <block type="variables_get" id="O%@zYESZw|{U[MBJiTOD">
                                                           <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                         </block>
                                                       </value>
                                                       <value name="VALUE">
                                                         <shadow type="text" id=":z2N;vi4f!oi340_l!A8">
                                                           <field name="TEXT">##### Test ####</field>
                                                         </shadow>
                                                       </value>
                                                       <next>
                                                         <block type="debug" id="Z:{CHk3GRUVm_h*{ZkaP">
                                                           <field name="Severity">info</field>
                                                           <value name="TEXT">
                                                             <shadow type="text" id="x7F#YLHp8Tk{b5[R5lH:">
                                                               <field name="TEXT">*******************Nachname wurde nicht geändert*****************************</field>
                                                             </shadow>
                                                           </value>
                                                           <next>
                                                             <block type="debug" id=":9h8z3rZ6G@MYI84|G4^">
                                                               <field name="Severity">info</field>
                                                               <value name="TEXT">
                                                                 <shadow type="text" id="Tt=/H].l0?)mXb^z1#aR">
                                                                   <field name="TEXT">test</field>
                                                                 </shadow>
                                                                 <block type="variables_get" id="L@eI]^w(~P2heMtyom:%">
                                                                   <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="debug" id="s}]*DdIh]J+R=JDfLe~Q">
                                                                   <field name="Severity">info</field>
                                                                   <value name="TEXT">
                                                                     <shadow type="text" id="jumUJ[i3TJAMVfVR+ATz">
                                                                       <field name="TEXT">test</field>
                                                                     </shadow>
                                                                     <block type="get_attr" id="gTS*`0}7VQX+H[DJOMo$">
                                                                       <value name="PATH">
                                                                         <shadow type="text" id="`PV(~xtZXNCH?]jjXY4c">
                                                                           <field name="TEXT">Name.Nachname</field>
                                                                         </shadow>
                                                                       </value>
                                                                       <value name="OBJECT">
                                                                         <shadow type="get_object" id="lox}0weulq;I(P1ms1*u">
                                                                           <field name="OID">Object ID</field>
                                                                         </shadow>
                                                                         <block type="variables_get" id="Pz0TBSL@g3n%SZ@}LfCA">
                                                                           <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                                         </block>
                                                                       </value>
                                                                     </block>
                                                                   </value>
                                                                   <next>
                                                                     <block type="comment" id=":*btLRvc{8pB{#1%hjeE">
                                                                       <field name="COMMENT">Nachname mit JSONATA ändern</field>
                                                                       <next>
                                                                         <block type="debug" id="U#mO=guh;C;#/{#[+CM0">
                                                                           <field name="Severity">info</field>
                                                                           <value name="TEXT">
                                                                             <shadow type="text" id="vMk1dK[^$`^)zM]?J1!}">
                                                                               <field name="TEXT">*******************Nachname mit JSONATA geändert*****************************</field>
                                                                             </shadow>
                                                                           </value>
                                                                           <next>
                                                                             <block type="variables_set" id="iCICj=TiW1t)mf`?du[l">
                                                                               <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                                               <value name="VALUE">
                                                                                 <block type="convert_jsonata" id="D_!Oh~{ETp[_1v;k7tBL">
                                                                                   <value name="EXPRESSION">
                                                                                     <shadow type="text" id="IO6S?eapGp8pgqqZ]jgy">
                                                                                       <field name="TEXT">$~&gt;|Name|{"Nachname":"geänderter Nachname"}|</field>
                                                                                     </shadow>
                                                                                   </value>
                                                                                   <value name="TARGET">
                                                                                     <block type="variables_get" id="#[V:f(k2]`WH!xry~Thd">
                                                                                       <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </value>
                                                                               <next>
                                                                                 <block type="debug" id="7ez/t3!Ksm/#Fwx^4K+,">
                                                                                   <field name="Severity">info</field>
                                                                                   <value name="TEXT">
                                                                                     <shadow type="text" id="Tt=/H].l0?)mXb^z1#aR">
                                                                                       <field name="TEXT">test</field>
                                                                                     </shadow>
                                                                                     <block type="variables_get" id="2Em~$t#kNiO0IvVv_zbG">
                                                                                       <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <next>
                                                                                     <block type="debug" id=")hCR3N0BhcFgdn[I:^9@">
                                                                                       <field name="Severity">info</field>
                                                                                       <value name="TEXT">
                                                                                         <shadow type="text" id="jumUJ[i3TJAMVfVR+ATz">
                                                                                           <field name="TEXT">test</field>
                                                                                         </shadow>
                                                                                         <block type="get_attr" id="tiNTn|{92(J$~MRW_f8Y">
                                                                                           <value name="PATH">
                                                                                             <shadow type="text" id="l[L;r_cZgED[(Z.zvGXu">
                                                                                               <field name="TEXT">Name.Nachname</field>
                                                                                             </shadow>
                                                                                           </value>
                                                                                           <value name="OBJECT">
                                                                                             <shadow type="get_object" id="lox}0weulq;I(P1ms1*u">
                                                                                               <field name="OID">Object ID</field>
                                                                                             </shadow>
                                                                                             <block type="variables_get" id="wADRwpI4~opX4fZR#F-S">
                                                                                               <field name="VAR" id="5^q]{Sfyr#dahNiN]R=@">Test</field>
                                                                                             </block>
                                                                                           </value>
                                                                                         </block>
                                                                                       </value>
                                                                                       <next>
                                                                                         <block type="debug" id="`)zO#6SgG?Cc/Qd:u_3S">
                                                                                           <field name="Severity">info</field>
                                                                                           <value name="TEXT">
                                                                                             <shadow type="text" id="!{3]D=i848TY!$VnWI(u">
                                                                                               <field name="TEXT">*******************geändertes JSON original*****************************</field>
                                                                                             </shadow>
                                                                                           </value>
                                                                                           <next>
                                                                                             <block type="debug" id="ylKTG,|U,#Kd}StRS2gi">
                                                                                               <field name="Severity">info</field>
                                                                                               <value name="TEXT">
                                                                                                 <shadow type="text" id="H:E#9+yvj,jDC`,Sx[j4">
                                                                                                   <field name="TEXT">test</field>
                                                                                                 </shadow>
                                                                                                 <block type="variables_get" id="^-zhPwZa/?(%stB^iD]J">
                                                                                                   <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                                                                                 </block>
                                                                                               </value>
                                                                                             </block>
                                                                                           </next>
                                                                                         </block>
                                                                                       </next>
                                                                                     </block>
                                                                                   </next>
                                                                                 </block>
                                                                               </next>
                                                                             </block>
                                                                           </next>
                                                                         </block>
                                                                       </next>
                                                                     </block>
                                                                   </next>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        Wie gesagt, wahrscheinlich kann das Puzzleteil nicht mit verschachtelten Objekten arbeiten.

        Genau- wie @paul53 es sonst letztlich gemacht hat in dem er alles bis auf eine Ebene in ein Objekt gebracht hat. Also
        name2:

        { Vorname: 'Henri-2', Nachname: 'Mustermann-2' }
        

        Wie gesagt, ich würde bei JSONATA bleiben, wenn Du es beherrschst - dann sparst Du Dir viel Code.

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @mickym last edited by paul53

          @mickym sagte: sparst Du Dir viel Code.

          So viel Code ist es auch nicht, wenn man auf Zwischenvariablen verzichtet.

          Blockly_temp.JPG

          mickym 1 Reply Last reply Reply Quote 2
          • mickym
            mickym Most Active @paul53 last edited by mickym

            @paul53 OK - gebe ich Dir Recht. Allerdings kann man halt mit JSONATA auch das ganze Objekt belassen und die Stelle, die geändert werden muss genau spezifizieren:

            $~>|$[id=2].Name|{"Nachname":"geänderter Nachname"}|
            

            https://try.jsonata.org/p84fe2dLO

            8d4d6ff6-6da2-4db7-add3-8cee21ec26b3-image.png

            das finde ich (nur persönliche Meinung) schon genial.

            paul53 1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @mickym last edited by

              @mickym sagt: das finde ich (nur persönliche Meinung) schon genial.

              Das ist es, wenn man JSONATA beherrscht.

              rantanplan 1 Reply Last reply Reply Quote 1
              • rantanplan
                rantanplan @rantanplan last edited by

                @mickym
                @paul53
                Man Ihr seit ja mal wieder flott. Danke!!!
                Das muss ich erstmal sacken lassen und versuchen zu verstehen.

                Melde mich dann.

                Grüße

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @rantanplan last edited by mickym

                  @rantanplan Nur der Vollständigkeit halber noch im Blockly mit JSONATA und Änderung des Nachnames der Person mit id=2 unter Beibehaltung des Gesamtobjektes (also Update):

                  63167273-7df4-4481-ade4-db3611daf00d-image.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <variables>
                      <variable id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</variable>
                    </variables>
                    <block type="comment" id="EZvg/*|7xh=vW53L/Gy$" x="-612" y="-462">
                      <field name="COMMENT">JSON Original setzen</field>
                      <next>
                        <block type="variables_set" id="[cVDQy=1v{H-!^H/{!DG">
                          <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                          <value name="VALUE">
                            <block type="convert_json2object" id="!?x#HIB~ZuFM#W`#]z3C">
                              <value name="VALUE">
                                <block type="text" id="0Dia]flH6dkI65v*?aV1">
                                  <field name="TEXT">[ &#9;{ &#9;&#9;"id": 1, &#9;&#9;"Name": { &#9;&#9;&#9;"Vorname": "Henri-1", &#9;&#9;&#9;"Nachname": "Mustermann-1" &#9;&#9;}, &#9;&#9;"Anschrift": { &#9;&#9;&#9;"Strasse": "Musterstrasse-1", &#9;&#9;&#9;"Ort:": "Musterort-1" &#9;&#9;} &#9;}, &#9;{ &#9;&#9;"id": 2, &#9;&#9;"Name": { &#9;&#9;&#9;"Vorname": "Henri-2", &#9;&#9;&#9;"Nachname": "Mustermann-2" &#9;&#9;}, &#9;&#9;"Anschrift": { &#9;&#9;&#9;"Strasse": "Musterstrasse-2", &#9;&#9;&#9;"Ort:": "Musterort-2" &#9;&#9;} &#9;} ]</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="debug" id="fkNpN*WtWl3Fb2%q8nEa">
                              <field name="Severity">info</field>
                              <value name="TEXT">
                                <shadow type="text" id="5V@1a4j+tNfTC^m`J8xd">
                                  <field name="TEXT">*************Original***********************************</field>
                                </shadow>
                              </value>
                              <next>
                                <block type="debug" id="z1`|3d!r`x#;|_[hfk!s">
                                  <field name="Severity">info</field>
                                  <value name="TEXT">
                                    <shadow type="text" id="*!}^.x?T/o7pW_u6@AJ.">
                                      <field name="TEXT">test</field>
                                    </shadow>
                                    <block type="variables_get" id="T%?wOC@q?lZP(;^3T2]i">
                                      <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="comment" id=":*btLRvc{8pB{#1%hjeE">
                                      <field name="COMMENT">Nachname  der ID2 mit JSONATA ändern</field>
                                      <next>
                                        <block type="debug" id="`)zO#6SgG?Cc/Qd:u_3S">
                                          <field name="Severity">info</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="!{3]D=i848TY!$VnWI(u">
                                              <field name="TEXT">*******************geändertes JSON original*****************************</field>
                                            </shadow>
                                          </value>
                                          <next>
                                            <block type="debug" id="ylKTG,|U,#Kd}StRS2gi">
                                              <field name="Severity">info</field>
                                              <value name="TEXT">
                                                <shadow type="text" id="H:E#9+yvj,jDC`,Sx[j4">
                                                  <field name="TEXT">test</field>
                                                </shadow>
                                                <block type="convert_jsonata" id="|m;@~qNAOjfn%MZ$G{qU">
                                                  <value name="EXPRESSION">
                                                    <shadow type="text" id="kR0Xg*|rHCzD{1`:$Dr~">
                                                      <field name="TEXT">$~&gt;|$[id=2].Name|{"Nachname":"geänderter Nachname"}|</field>
                                                    </shadow>
                                                  </value>
                                                  <value name="TARGET">
                                                    <block type="variables_get" id="^-zhPwZa/?(%stB^iD]J">
                                                      <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </xml>
                  

                  1 Reply Last reply Reply Quote 1
                  • rantanplan
                    rantanplan @paul53 last edited by

                    @paul53 sagte in Blockly JSON Eintrag ändern:

                    @mickym sagt: das finde ich (nur persönliche Meinung) schon genial.

                    Das ist es, wenn man JSONATA beherrscht.

                    Nochmals herzlichen Dank an @paul53 und @mickym
                    Ihr habt beide recht und beide Lösungen funktionieren.

                    Der Nachteil bei dem "setze Attribut"-Baustein ist, dass er nicht flexibel ist.
                    Für jeden zu ändernden Wert müsste ein Baustein erstellt werden.

                    Da ist die Lösung über JSONata besser.
                    Mal sehen wie ich mit der JSONata-Syntax zurecht komme wenn das JSON anders aussieht 😬

                    Ich habe mal mein Beispiel an JSONata angepasst und eine flexible Syntax angefügt.
                    Blockly Bild:


                    Blockly-3.png

                    Blockly Source:

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <variables>
                       <variable id="99K0cvb{Gks.j|c[IiQ;">index</variable>
                       <variable id="$IaE?o__ePF.56a.Y?X|">key1</variable>
                       <variable id="YjlvQ/k*Z8OUbOk.#l{T">key2</variable>
                       <variable id="B9=_U-U9P.uOBg#U4_$H">value</variable>
                       <variable id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</variable>
                       <variable id="Yph%-CD-C`M=KS6Ios_m">Syntax</variable>
                     </variables>
                     <block type="comment" id="EZvg/*|7xh=vW53L/Gy$" x="13" y="13">
                       <field name="COMMENT">JSON Original setzen</field>
                       <next>
                         <block type="variables_set" id="[cVDQy=1v{H-!^H/{!DG">
                           <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                           <value name="VALUE">
                             <block type="convert_json2object" id="!?x#HIB~ZuFM#W`#]z3C">
                               <value name="VALUE">
                                 <block type="text" id="0Dia]flH6dkI65v*?aV1">
                                   <field name="TEXT">[ &#9;{ &#9;&#9;"id": 1, &#9;&#9;"Name": { &#9;&#9;&#9;"Vorname": "Henri-1", &#9;&#9;&#9;"Nachname": "Mustermann-1" &#9;&#9;}, &#9;&#9;"Anschrift": { &#9;&#9;&#9;"Strasse": "Musterstrasse-1", &#9;&#9;&#9;"Ort:": "Musterort-1" &#9;&#9;} &#9;}, &#9;{ &#9;&#9;"id": 2, &#9;&#9;"Name": { &#9;&#9;&#9;"Vorname": "Henri-2", &#9;&#9;&#9;"Nachname": "Mustermann-2" &#9;&#9;}, &#9;&#9;"Anschrift": { &#9;&#9;&#9;"Strasse": "Musterstrasse-2", &#9;&#9;&#9;"Ort:": "Musterort-2" &#9;&#9;} &#9;} ]</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="debug" id="fkNpN*WtWl3Fb2%q8nEa">
                               <field name="Severity">info</field>
                               <value name="TEXT">
                                 <shadow type="text" id="5V@1a4j+tNfTC^m`J8xd">
                                   <field name="TEXT">*************Original***********************************</field>
                                 </shadow>
                               </value>
                               <next>
                                 <block type="debug" id="z1`|3d!r`x#;|_[hfk!s">
                                   <field name="Severity">info</field>
                                   <value name="TEXT">
                                     <shadow type="text" id="*!}^.x?T/o7pW_u6@AJ.">
                                       <field name="TEXT">test</field>
                                     </shadow>
                                     <block type="variables_get" id="T%?wOC@q?lZP(;^3T2]i">
                                       <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="comment" id=":*btLRvc{8pB{#1%hjeE">
                                       <field name="COMMENT">Nachname mit JSONATA ändern</field>
                                       <next>
                                         <block type="procedures_callnoreturn" id="W?h6GQb8y8t|U`S_ZpsD" inline="true">
                                           <mutation name="changeJSON">
                                             <arg name="index"></arg>
                                             <arg name="key1"></arg>
                                             <arg name="key2"></arg>
                                             <arg name="value"></arg>
                                           </mutation>
                                           <value name="ARG0">
                                             <block type="text" id="Si)J7.l}1V#mRr!]BA#o">
                                               <field name="TEXT">2</field>
                                             </block>
                                           </value>
                                           <value name="ARG1">
                                             <block type="text" id="U7LW{`!EayJ=qkuqdsr3">
                                               <field name="TEXT">Name</field>
                                             </block>
                                           </value>
                                           <value name="ARG2">
                                             <block type="text" id="v}AzshZ.FGGUjUO~i}GT">
                                               <field name="TEXT">"Nachname"</field>
                                             </block>
                                           </value>
                                           <value name="ARG3">
                                             <block type="text" id="Z~,9aJa(A2+RWxwxW@z,">
                                               <field name="TEXT">"###Test###"</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="debug" id="`)zO#6SgG?Cc/Qd:u_3S">
                                               <field name="Severity">info</field>
                                               <value name="TEXT">
                                                 <shadow type="text" id="!{3]D=i848TY!$VnWI(u">
                                                   <field name="TEXT">*******************geändertes JSON original*****************************</field>
                                                 </shadow>
                                               </value>
                                               <next>
                                                 <block type="debug" id="ylKTG,|U,#Kd}StRS2gi">
                                                   <field name="Severity">info</field>
                                                   <value name="TEXT">
                                                     <shadow type="text" id="H:E#9+yvj,jDC`,Sx[j4">
                                                       <field name="TEXT">test</field>
                                                     </shadow>
                                                     <block type="variables_get" id="^-zhPwZa/?(%stB^iD]J">
                                                       <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                     <block type="procedures_defnoreturn" id="dC4pE/_O~yhMR!#AU/h8" x="13" y="363">
                       <mutation>
                         <arg name="index" varid="99K0cvb{Gks.j|c[IiQ;"></arg>
                         <arg name="key1" varid="$IaE?o__ePF.56a.Y?X|"></arg>
                         <arg name="key2" varid="YjlvQ/k*Z8OUbOk.#l{T"></arg>
                         <arg name="value" varid="B9=_U-U9P.uOBg#U4_$H"></arg>
                       </mutation>
                       <field name="NAME">changeJSON</field>
                       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                       <statement name="STACK">
                         <block type="comment" id="B$)+$S4|)j#H~Gv?x:Wn">
                           <field name="COMMENT">Beispiel</field>
                           <next>
                             <block type="comment" id="%o~P+rl.w-#8?T=kPP^X">
                               <field name="COMMENT">$~&gt;|$[id=2].Name|{"Nachname":"######Test#####"}|</field>
                               <next>
                                 <block type="variables_set" id="MbjAB,naua4}]T/T@A)(">
                                   <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                   <value name="VALUE">
                                     <block type="text" id="llhG.fSWB-*)SQ9~,%f4">
                                       <field name="TEXT">$~&gt;|$[id=#111].#222|{#333:#444}|</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="variables_set" id="V#k_?MR)*9.4)kkg])?9">
                                       <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                       <value name="VALUE">
                                         <block type="text_replace" id="Qu]P?%eG=mSkarMmzsp/">
                                           <value name="FROM">
                                             <shadow type="text" id="YS]$dgM(,hd)|i-)(B,T">
                                               <field name="TEXT">#111</field>
                                             </shadow>
                                           </value>
                                           <value name="TO">
                                             <shadow type="text" id="Q+p-ku?)8(T:}e$Fb(5.">
                                               <field name="TEXT">index</field>
                                             </shadow>
                                             <block type="variables_get" id="Hl_d!^-2$)2UD%B@%VuT">
                                               <field name="VAR" id="99K0cvb{Gks.j|c[IiQ;">index</field>
                                             </block>
                                           </value>
                                           <value name="TEXT">
                                             <shadow type="text" id=":ABh_%^sq%u|(W.b_==t">
                                               <field name="TEXT">text</field>
                                             </shadow>
                                             <block type="variables_get" id="[QyBD;s}:2QEyj/aUs#V">
                                               <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id="gs4HvnEd0+kH3!-riqzB">
                                           <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                           <value name="VALUE">
                                             <block type="text_replace" id=";#;V{Cblz9N,BO7;wcUx">
                                               <value name="FROM">
                                                 <shadow type="text" id="6A4I%gH7]H^g9VgmZ$J[">
                                                   <field name="TEXT">#222</field>
                                                 </shadow>
                                               </value>
                                               <value name="TO">
                                                 <shadow type="text" id="Q+p-ku?)8(T:}e$Fb(5.">
                                                   <field name="TEXT">index</field>
                                                 </shadow>
                                                 <block type="variables_get" id="_5BM;#EPz,{9Hd%`Dd$_">
                                                   <field name="VAR" id="$IaE?o__ePF.56a.Y?X|">key1</field>
                                                 </block>
                                               </value>
                                               <value name="TEXT">
                                                 <shadow type="text" id=":ABh_%^sq%u|(W.b_==t">
                                                   <field name="TEXT">text</field>
                                                 </shadow>
                                                 <block type="variables_get" id="PeW_W~]uFPq]hz;cb^~-">
                                                   <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="variables_set" id="uQ4s=U/7g`k4:52#/l=|">
                                               <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                               <value name="VALUE">
                                                 <block type="text_replace" id=",50,M^d~7K/6E/|pcmP!">
                                                   <value name="FROM">
                                                     <shadow type="text" id="r{X[!2cd[qJ=%,2lp}1A">
                                                       <field name="TEXT">#333</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="TO">
                                                     <shadow type="text" id="Q+p-ku?)8(T:}e$Fb(5.">
                                                       <field name="TEXT">index</field>
                                                     </shadow>
                                                     <block type="variables_get" id="V])}+h=Hnzz,}%AjgV?j">
                                                       <field name="VAR" id="YjlvQ/k*Z8OUbOk.#l{T">key2</field>
                                                     </block>
                                                   </value>
                                                   <value name="TEXT">
                                                     <shadow type="text" id=":ABh_%^sq%u|(W.b_==t">
                                                       <field name="TEXT">text</field>
                                                     </shadow>
                                                     <block type="variables_get" id="|UW`s=~i1YtPKFxaEI,j">
                                                       <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="variables_set" id="2Gz;2i4Rvs~*-*(;OGYr">
                                                   <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                                   <value name="VALUE">
                                                     <block type="text_replace" id=":~[AmO.6vxdzgTl[u![?">
                                                       <value name="FROM">
                                                         <shadow type="text" id="k0%w+h)t],gRR1VM0Cr]">
                                                           <field name="TEXT">#444</field>
                                                         </shadow>
                                                       </value>
                                                       <value name="TO">
                                                         <shadow type="text" id="Q+p-ku?)8(T:}e$Fb(5.">
                                                           <field name="TEXT">index</field>
                                                         </shadow>
                                                         <block type="variables_get" id="YUs.rGU[mo+,(,pVN+V1">
                                                           <field name="VAR" id="B9=_U-U9P.uOBg#U4_$H">value</field>
                                                         </block>
                                                       </value>
                                                       <value name="TEXT">
                                                         <shadow type="text" id=":ABh_%^sq%u|(W.b_==t">
                                                           <field name="TEXT">text</field>
                                                         </shadow>
                                                         <block type="variables_get" id="OdcgnLpGc2%^aT4P:!26">
                                                           <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="debug" id="^e98)DJx9J79=iRtv%M8">
                                                       <field name="Severity">info</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="k~$WFVVT*Pw;dZFmNc-p">
                                                           <field name="TEXT">test</field>
                                                         </shadow>
                                                         <block type="text_join" id="L..s?k(k3wJ8`S#Vw6fx">
                                                           <mutation items="2"></mutation>
                                                           <value name="ADD0">
                                                             <block type="text" id="4e;uz`*(/evfVW6GLJlc">
                                                               <field name="TEXT">JSONata Ausdruck: </field>
                                                             </block>
                                                           </value>
                                                           <value name="ADD1">
                                                             <block type="variables_get" id="lLqD$M%b+vd;{`}+]vxg">
                                                               <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="variables_set" id="~f}lq-k+F|:R:,MB-;wp">
                                                           <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                                           <value name="VALUE">
                                                             <block type="convert_jsonata" id="37iY9o7S08(prp)OPLYw">
                                                               <value name="EXPRESSION">
                                                                 <shadow type="text" id="sfpB]{]]9i@u/D;NO.o@">
                                                                   <field name="TEXT"></field>
                                                                 </shadow>
                                                                 <block type="variables_get" id=":lN+:a}}4~!6S;c#Y=8B">
                                                                   <field name="VAR" id="Yph%-CD-C`M=KS6Ios_m">Syntax</field>
                                                                 </block>
                                                               </value>
                                                               <value name="TARGET">
                                                                 <block type="variables_get" id="oPpxzCc[q2yEy*-Uey7x">
                                                                   <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                    </xml>
                    

                    Damit werde ich mal weitere Versuche anstellen.

                    Nochmal vielen Dank!

                    Grüße

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @rantanplan last edited by

                      @rantanplan Na ja ich finde die JSONATA Syntax schon flexibel genug - ausserdem will man ja manchmal was anderes haben. Ich würde lieber mit dem JSONATA Exerciser üben und dann kannst Du diese Ausdrücke sofort hinschreiben und musst nicht erst eine Funktion aufrufen.

                      rantanplan 1 Reply Last reply Reply Quote 0
                      • rantanplan
                        rantanplan @mickym last edited by

                        @mickym sagte in [gelöst] Blockly JSON Eintrag ändern:

                        @rantanplan Na ja ich finde die JSONATA Syntax schon flexibel genug - ausserdem will man ja manchmal was anderes haben.

                        Ja, deshalb eine flexible Abfrage.

                        Ich würde lieber mit dem JSONATA Exerciser üben

                        Das werde ich bestimmt tun. 😀

                        und dann kannst Du diese Ausdrücke sofort hinschreiben und musst nicht erst eine Funktion aufrufen.

                        Aber dann hätte ich ja wieder eine starre Abfrage.

                        Erst einmal wollte ich die Möglichkeiten von JSON abklopfen und verstehen.
                        Jetzt überlege ich mir welche meiner Blocklys ich eventuell anpassen könnte.

                        Eventuell probiere ich es bei meiner Heizungssteuerung.
                        Und da für jeden Raum, Zeiten, Temperaturen usw. feste Ausdrücke zu verwenden finde schier unmöglich.
                        Oder sehe ich da was falsch?

                        Grüße

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @rantanplan last edited by mickym

                          @rantanplan sagte in [gelöst] Blockly JSON Eintrag ändern:

                          Eventuell probiere ich es bei meiner Heizungssteuerung.
                          Und da für jeden Raum, Zeiten, Temperaturen usw. feste Ausdrücke zu verwenden finde schier unmöglich.
                          Oder sehe ich da was falsch?

                          Na in meinen Augen siehst Du das falsch. Anstelle eine Funktion aufzurufen, kannst du doch den JSONATA Eintrag direkt erstellen. Du kannst den ja auch insgesamt als einen String abspeichern.
                          Ich seh hinter diesem Funktionsblock keinen Vorteil, ausser dass er Dir am Anfang eine Schablone gibt.

                          Du kannst auch den ganzen Ausdruck in eine Variable setzen:
                          41120414-3313-4e04-ac00-390669735f2e-image.png

                          Wie gesagt, am Anfang hilft Dir das vielleicht - versuch halt lieber die Syntax zu verstehen:
                          https://docs.jsonata.org/other-operators#-------transform

                          Nehmen wir mal an, Du möchtest bei allen Namen noch die Anrede in das Objekt einfügen, dann stimmt doch der Ausdruck schon nicht mehr.

                          080a00cd-e7f6-42ab-a952-955561e75ae5-image.png

                          Letztlich lässt Du Dir zwar mit Deiner Funktion nur die Syntax zusammenstellen.

                          5b2876c0-ca34-4e0b-93c7-69aa504caeaa-image.png

                          letztlich sind ja Deine Parameter index, key1, key2, value - auch fix - wenn Du diese Funktion aufrufst bzw. wenn Du Dir aus Datenpunkten holst. Aber egal- Du bekommst das schon hin. 😉

                          Wenn Du Dir die Syntax anschaust, dann siehst Du ja an der Funktionsbeschreibung, die einzelnen Parameter:

                          head ~> | location | update [, delete] |
                          

                          head

                          Mit "head" spezifierst Du das ganze Objekt - welches Du wie auch immer verändert wieder haben willst.

                          Schau mal das kennst Du ja bereits - als Transformation des gesamten Heads:

                          e0d84160-cebe-4a43-88e1-58496132d761-image.png

                          Wenn Du als "head" nun nur noch das einzelne Objekt wieder haben willst, mit der id 2 dann filterst Du bereits im head.

                          6697cb33-8701-42f2-bcba-b3f2ea0c8ab1-image.png

                          Jetzt bekommst Du also nur noch das Objekt zurück, was Du über den head bereits gefiltert hast.

                          $[id=2]~>|Name|{"Nachname":"geänderter Nachname"}|
                          

                          Wenn Du im head schon bis zum Namensobjekt gefiltert hast, dann bekommst Du auch nur noch das Namensobjekt zurück. Dann ist der Pfad zum Objekt (location) natürlich das Objekt selbst.

                          $[id=2].Name~>|$|{"Nachname":"geänderter Nachname"}|
                          

                          ed392402-4034-4f5d-86f4-b8adf880e3e9-image.png

                          Probiers im Exerciser einfach aus.

                          location

                          Das ist der Pfad zu dem Objekt, dass Du modifzieren willst. Der Pfad richtet sich danach, wie der head ausschaut, also ob Du das ganze Ausgangsobjekt nimmst oder nur einen Teil.

                          update

                          Da schreibst Du in Objektschreibweise hin, welche Eigenschaft Du ändern willst. Existiert diese nicht wird sie hinzugefügt

                          ======================================================================================

                          Wenn ich also so eine Funktion basteln würde, dann würde ich das mit diesen 3 Parametern machen .

                          rantanplan 1 Reply Last reply Reply Quote 0
                          • rantanplan
                            rantanplan @mickym last edited by

                            @mickym sagte in [gelöst] Blockly JSON Eintrag ändern:

                            Na in meinen Augen siehst Du das falsch. Anstelle eine Funktion aufzurufen, kannst du doch den JSONATA Eintrag direkt erstellen.

                            Jetzt habe ich Dich verstanden. Aber die komplette Syntax zu bauen ist schon die Königsdisziplin.

                            Ich seh hinter diesem Funktionsblock keinen Vorteil, ausser dass er Dir am Anfang eine Schablone gibt.

                            Ja, eine Schablone ist aber schon mal ein Anfang. Und weniger Fehleranfällig.

                            Wie gesagt, am Anfang hilft Dir das vielleicht - versuch halt lieber die Syntax zu verstehen:

                            Ich werde es versuchen.

                            letztlich sind ja Deine Parameter index, key1, key2, value - auch fix - wenn Du diese Funktion aufrufst bzw. wenn Du Dir aus Datenpunkten holst.

                            Ja, aber einem Blockly/JSON angepasst.
                            Ich muss erstmal anfangen. Vielleicht kommt ja noch ein AHA-Effekt.

                            Aber egal- Du bekommst das schon hin. 😉

                            Überschätz mich nicht 😉

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @rantanplan last edited by

                              @rantanplan sagte in [gelöst] Blockly JSON Eintrag ändern:

                              Überschätz mich nicht

                              Ich muss manchmal auch probieren - es wäre gelogen, wenn ich einfach sagen würde - dass es mir nur so aus den Fingern fließt. Deswegen liebe ich den Exerciser - da ich dann solange rumprobieren kann, bis es passt.

                              Wenn Du nur einen Parameter ändern willst, passt das ja - aber stell Dir mal vor, Du willst für die Person, Vor- und Nachname ändern? 😁

                              Wie einfach das im Grunde geht. 😉

                              $~>|$[id=2].Name|{"Vorname":"Max","Nachname":"Mustermann"}|
                              

                              53c535c1-3424-4655-8eca-c91a8b1344a4-image.png

                              Und wie gesagt, scheu Dich halt nicht zu fragen. Für mich war das am Anfang auch schwer zu verstehen - heute bin ich sowas von begeistert. Ich glaube das merkt man auch.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              938
                              Online

                              31.9k
                              Users

                              80.1k
                              Topics

                              1.3m
                              Posts

                              3
                              15
                              623
                              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