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.
    • rantanplan
      rantanplan last edited by rantanplan

      Hallo zusammen.
      Ich könnte mal eine Erleuchtung gebrauchen.

      Momentan kämpfe ich mit dem JSON Format und den neuen Blockly-Bausteinen herum.
      Ziel ist es ein JSON (mit mehreren Objekten) einzulesen, Daten ändern und wieder speichern.
      Nach etlichen Versuchen und Forenbeiträgen ist mir dies teilweise gelungen.
      Bei einem, ich nenne es mal eindimensionalem JSON, funktioniert es.

      Hier mein funktionierendes Beispiel.
      Noch ein Tipp für blutige JSON-Anfänger wie mich. Ich benutze in dem Beispiel eine Zahl als „id“.
      Deshalb reicht $[id=2] zur Auswahl. Wenn man Text auswählen möchte muss man Anführungszeichen setzen z.B. $[id=“Wohnzimmer“]. UND ganz wichtig auf Groß-, Kleinschreibung achten.

      Blockly Bild:


      Blockly-1.png

      Das JSON dazu:

      [
         {
         	"id": 1,
         	"Name": "Mustermann-1",
         	"Strasse": "Musterstrasse-1"
         },
         {
         	"id": 2,
         	"Name": "Mustermann-2",
         	"Strasse": "Musterstrasse-2"
         },
         {
         	"id": 3,
         	"Name": "Mustermann-3",
         	"Strasse": "Musterstrasse-3"
         },
         {
         	"id": 4,
         	"Name": "Mustermann-4",
         	"Strasse": "Musterstrasse-4"
         }
      ]
      


      Blockly Source:

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</variable>
         <variable id="1i*5:Ai4Ett,)dK]J`Ms">Test</variable>
       </variables>
       <block type="comment" id="EZvg/*|7xh=vW53L/Gy$" x="-662" y="-513">
         <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": "Mustermann-1", &#9;&#9;"Strasse": "Musterstrasse-1" &#9;}, &#9;{ &#9;&#9;"id": 2, &#9;&#9;"Name": "Mustermann-2", &#9;&#9;"Strasse": "Musterstrasse-2" &#9;}, &#9;{ &#9;&#9;"id": 3, &#9;&#9;"Name": "Mustermann-3", &#9;&#9;"Strasse": "Musterstrasse-3" &#9;}, &#9;{ &#9;&#9;"id": 4, &#9;&#9;"Name": "Mustermann-4", &#9;&#9;"Strasse": "Musterstrasse-4" &#9;} ]</field>
                   </block>
                 </value>
               </block>
             </value>
             <next>
               <block type="debug" id="G0PT1C@-+^^N/CHY+3W(">
                 <field name="Severity">info</field>
                 <value name="TEXT">
                   <shadow type="text" id="-?ue!/szD6[5B+iZgduV">
                     <field name="TEXT">***********************Original*************************</field>
                   </shadow>
                 </value>
                 <next>
                   <block type="debug" id="sVBBMnoP3WU;i^.vpkUK">
                     <field name="Severity">info</field>
                     <value name="TEXT">
                       <shadow type="text" id="$n;cwoQhxB-l:^aB[;3y">
                         <field name="TEXT">test</field>
                       </shadow>
                       <block type="variables_get" id="]yqvj=AwtGWNj4ceyf1.">
                         <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="!c$Jl5~[;116;39CA2Oq">
                             <field name="VAR" id="1i*5:Ai4Ett,)dK]J`Ms">Test</field>
                             <value name="VALUE">
                               <block type="convert_jsonata" id="m/*`YBEKKh/G](?Hh!AW">
                                 <value name="EXPRESSION">
                                   <shadow type="text" id="i{Y-;:}vj7V.;rV+$qk.">
                                     <field name="TEXT">$[id=2]</field>
                                   </shadow>
                                 </value>
                                 <value name="TARGET">
                                   <block type="variables_get" id="mY=yY6v4W1Y[:*qiw!v;">
                                     <field name="VAR" id="0^qiE+P)i1~f?PZ(;N}a">JSONObjekt</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="debug" id="w,!lv=}LxOQ4H(@yAVl0">
                                 <field name="Severity">info</field>
                                 <value name="TEXT">
                                   <shadow type="text" id="wB:Dj2y/5)(9N6LV+TGY">
                                     <field name="TEXT">*******************gewählte id aus Test*****************************</field>
                                   </shadow>
                                 </value>
                                 <next>
                                   <block type="debug" id="Uk6X0.rUW.}Zj0kW36Z+">
                                     <field name="Severity">info</field>
                                     <value name="TEXT">
                                       <shadow type="text" id="]k,)C,tu|!#usM{872.w">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="variables_get" id="t[J.%Q:E77|W,74a~{pQ">
                                         <field name="VAR" id="1i*5:Ai4Ett,)dK]J`Ms">Test</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="debug" id="(qT@FTLET6b10_JFi!~C">
                                         <field name="Severity">info</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="5qAyPX@`/[(=A04N_GAk">
                                             <field name="TEXT">*****************Name aus id Test*******************************</field>
                                           </shadow>
                                         </value>
                                         <next>
                                           <block type="debug" id="n#k+N=m|7jlQ^.U`6TO.">
                                             <field name="Severity">info</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="@Waf()*5z4tgSz=~`9;q">
                                                 <field name="TEXT">test</field>
                                               </shadow>
                                               <block type="get_attr" id="JI~pU_gf*(#gv1/edYQ~">
                                                 <value name="PATH">
                                                   <shadow type="text" id="N+9`#Renf`-5*|m.e5Mb">
                                                     <field name="TEXT">Name</field>
                                                   </shadow>
                                                 </value>
                                                 <value name="OBJECT">
                                                   <shadow type="get_object" id="he19iPE?;jvq_]^{$}D)">
                                                     <field name="OID">Object ID</field>
                                                   </shadow>
                                                   <block type="variables_get" id="`Tf|XMy3Xz4n%pvE]7D`">
                                                     <field name="VAR" id="1i*5:Ai4Ett,)dK]J`Ms">Test</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="comment" id="[A:y1svo)[8okZ`xVd8F">
                                                 <field name="COMMENT">Name ändern</field>
                                                 <next>
                                                   <block type="object_set_attr" id="C9Jkydh,oHUv*[-N?|JU">
                                                     <field name="ATTR">Name</field>
                                                     <value name="OBJECT">
                                                       <block type="variables_get" id="Rulq9N?,@SJ0!vE@%~@u">
                                                         <field name="VAR" id="1i*5:Ai4Ett,)dK]J`Ms">Test</field>
                                                       </block>
                                                     </value>
                                                     <value name="VALUE">
                                                       <shadow type="text" id="cPKpK$N$0(RN3$XQ^+jR">
                                                         <field name="TEXT">##### Test ####</field>
                                                       </shadow>
                                                     </value>
                                                     <next>
                                                       <block type="debug" id="{3{b[R+@?$$^4-?/c10a">
                                                         <field name="Severity">info</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="o8gS(jF)q:Lu,[z:mB6,">
                                                             <field name="TEXT">*****************geänderter Name aus id Test*******************************</field>
                                                           </shadow>
                                                         </value>
                                                         <next>
                                                           <block type="debug" id="(K-i7fej:dx3]x#lW4Uf">
                                                             <field name="Severity">info</field>
                                                             <value name="TEXT">
                                                               <shadow type="text" id="@Waf()*5z4tgSz=~`9;q">
                                                                 <field name="TEXT">test</field>
                                                               </shadow>
                                                               <block type="get_attr" id="GCk[FrLUL^iC$GAjzB=+">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id="F{ZBr#$iR*9eW{b%fDMk">
                                                                     <field name="TEXT">Name</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <shadow type="get_object" id="he19iPE?;jvq_]^{$}D)">
                                                                     <field name="OID">Object ID</field>
                                                                   </shadow>
                                                                   <block type="variables_get" id="N[t4(IlB;RU`5`_/XvCK">
                                                                     <field name="VAR" id="1i*5:Ai4Ett,)dK]J`Ms">Test</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="debug" id="u4CybUw/pq2L%N=4i5oE">
                                                                 <field name="Severity">info</field>
                                                                 <value name="TEXT">
                                                                   <shadow type="text" id="likT5Md`DPV,p6-!r!E(">
                                                                     <field name="TEXT">***************geändertes JSON Original*********************************</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <next>
                                                                   <block type="debug" id="L=J^~Fy(P]3=(*,3mco1">
                                                                     <field name="Severity">info</field>
                                                                     <value name="TEXT">
                                                                       <shadow type="text" id="$n;cwoQhxB-l:^aB[;3y">
                                                                         <field name="TEXT">test</field>
                                                                       </shadow>
                                                                       <block type="variables_get" id="Sp=iDIlnpU{u9{ThZ4M;">
                                                                         <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>
      </xml>
      

      Nun zu dem Beispiel das NICHT funktioniert.
      Wobei ich nicht weiß ob es an mir liegt oder ein Bug im „Setze Attribut“ Baustein ist.

      Blockly Bild:


      Blockly-2.png

      Das JSON dazu:

      [
      {
         	"id": 1,
         	"Name": {
         		"Vorname": "Henri-1",
         		"Nachname": "Mustermann-1"
         	},
         	"Anschrift": {
         		"Strasse": "Musterstrasse-1",
         		"Ort:": "Musterort-1"
         	}
         },
         {
         	"id": 2,
         	"Name": {
         		"Vorname": "Henri-2",
         		"Nachname": "Mustermann-2"
         	},
         	"Anschrift": {
         		"Strasse": "Musterstrasse-2",
         		"Ort:": "Musterort-2"
         	}
         }
      ]
      

      Blockly Source:

      <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="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="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>
      </xml>
      


      Das geänderte JSON sieht dann so aus.

      [
       {
         id: 1,
         Name: { Vorname: 'Henri-1', Nachname: 'Mustermann-1' },
         Anschrift: { Strasse: 'Musterstrasse-1', 'Ort:': 'Musterort-1' }
       },
       {
         id: 2,
         Name: { Vorname: 'Henri-2', Nachname: 'Mustermann-2' },
         Anschrift: { Strasse: 'Musterstrasse-2', 'Ort:': 'Musterort-2' },
         'Name.Nachname': '##### Test ####'
       }
      ]
      


      Anstatt den Nachnamen zu ändern wird die Änderung komplett, mit Attribut, an id 2 angehängt.

      Mache ich etwas falsch oder ist es ein Bug.

      Bin für jeden Tipp dankbar!

      Grüße

      mickym paul53 rantanplan 3 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @rantanplan last edited by mickym

        @rantanplan Ich kann auch keinen Fehler direkt entdecken - ich würde halt weiter JSONATA nehmen um das Attribut zu ändern. Wahrscheinlich kann das Puzzleteil nicht mit verschachtelten Objekten arbeiten.

        mickym 1 Reply Last reply Reply Quote 0
        • 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

                                  576
                                  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