NEWS
Mit Blockly JSON aus Liste erstellen
-
Möchte aus einer Liste die so ausieht
['000|02:15','000|02:20','000|02:25','000|02:30','000|02:35','000|02:40','000|02:45','000|02:50','000|02:55','000|03:00','000|03:05','000|03:10','000|03:15','000|03:20','000|03:25','000|03:30','000|03:35','000|03:40','000|03:45','000|03:50','000|03:55','000|04:00','000|04:05','000|04:10','']
ein JSON erstellen der so ausieht (gekürzt)
[ { "Menge": 000, "Uhrzeit": 02:15 }, { "Menge": 000, "Uhrzeit": 02:20 }, { "Menge": 000, "Uhrzeit": 02:25 }, { "Menge": 000, "Uhrzeit": 02:30 } ]
Komme aber an dieser Stelle mit meinem Blockly nicht mehr weiter
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id=";SIrJn_z=H*D@t2AxtHF">Liste</variable> <variable id="2IQu?X]va:h[0!M/LsQ$">result</variable> <variable id="/V:V-TB}zp(.X0@$#T|P">i</variable> <variable id="=6CKA)s(^BO%_#ARX,ha">uhr</variable> <variable id="eC_/`QKB}RDomD/!f`2(">menge</variable> <variable id="2=_{8jqd?@yULPnj/[!_">test</variable> </variables> <block type="schedule" id="E3fVdDtKLj10~Uao?u?Y" x="-211" y="-96"> <field name="SCHEDULE">*/20 * * * * *</field> <statement name="STATEMENT"> <block type="request" id="!rGp=u[HT%m0fkPf_sHr"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="1(ZaRGZ}$[[j`Y~?G.!{"> <field name="TEXT">https://gadgets.buienradar.nl/data/raintext?lat=51.11&lon=6.15</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="y:GV6FEsdO@4o]!etG%}"> <field name="COMMENT">Inhalt von raintext in Liste umwandeln</field> <next> <block type="variables_set" id="VNEeEV]zdah{ccHg)`#;"> <field name="VAR" id=";SIrJn_z=H*D@t2AxtHF">Liste</field> <value name="VALUE"> <block type="lists_split" id="^rizS!m35~8[g=Bx8Toe"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id=".-@{jmj3uESEDgn5cD}Y"> <field name="VAR" id="2IQu?X]va:h[0!M/LsQ$">result</field> </block> </value> <value name="DELIM"> <shadow type="text" id="c8m,yN@=;2/d?egwMT!#"> <field name="TEXT">,</field> </shadow> <block type="text_newline" id="$$os-%dLAwQV(U^-)v)g"> <field name="Type">\n</field> </block> </value> </block> </value> <next> <block type="debug" id="I(6urOR@_N]sX`{WjVB)"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="k+Rz=1Jr_C0E1l^QV1|0"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="@kN5%1UZ7=0f^VOrQLh="> <field name="VAR" id=";SIrJn_z=H*D@t2AxtHF">Liste</field> </block> </value> <next> <block type="controls_forEach" id="Niq:-fQL,`V$G?bWdfSr"> <field name="VAR" id="/V:V-TB}zp(.X0@$#T|P">i</field> <value name="LIST"> <block type="variables_get" id="rgN}bC6$s/)JC2p$aOl?"> <field name="VAR" id=";SIrJn_z=H*D@t2AxtHF">Liste</field> </block> </value> <statement name="DO"> <block type="comment" id="eH4E%]K8W03k96yU?3y?"> <field name="COMMENT">Nur Uhrzeit aus Liste</field> <next> <block type="variables_set" id="Z*pFL1]pSTV@A??0i^t["> <field name="VAR" id="=6CKA)s(^BO%_#ARX,ha">uhr</field> <value name="VALUE"> <block type="text_getSubstring" id="#6RfUH]v(vT]=]@dLpAo"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="YKgg|NAk|vwmOJ}OSeQ("> <field name="VAR" id="/V:V-TB}zp(.X0@$#T|P">i</field> </block> </value> <value name="AT1"> <block type="math_number" id="K!*`fCjHc/RW[)^F6_d9"> <field name="NUM">5</field> </block> </value> <value name="AT2"> <block type="math_number" id="!c)(fk)pIe~t.SlKAEAf"> <field name="NUM">9</field> </block> </value> </block> </value> <next> <block type="comment" id="biHa`6`IYmKKg}hpCm}y"> <field name="COMMENT">Nur Menge aus Liste</field> <next> <block type="variables_set" id="^43p*X7HOMH$bA1fea%]"> <field name="VAR" id="eC_/`QKB}RDomD/!f`2(">menge</field> <value name="VALUE"> <block type="text_getSubstring" id="fJJT(C%$hMmi3^4gd`qA"> <mutation at1="false" at2="true"></mutation> <field name="WHERE1">FIRST</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="variables_get" id="FomS2/B;2X)Bu78@~rcq"> <field name="VAR" id="/V:V-TB}zp(.X0@$#T|P">i</field> </block> </value> <value name="AT2"> <block type="math_number" id="qx1K0CAJ1$pCT$F8qCkR"> <field name="NUM">3</field> </block> </value> </block> </value> <next> <block type="comment" id="s$hqH/:#S+ZjTQ7ZpLGf"> <field name="COMMENT">Menge und Uhrzeit </field> <next> <block type="variables_set" id="OM}A]CVH.g900|;-5{eq"> <field name="VAR" id="2=_{8jqd?@yULPnj/[!_">test</field> <value name="VALUE"> <block type="text_join" id="wk,kGacR?YtmTu3=:n/)"> <mutation items="7"></mutation> <value name="ADD0"> <block type="text" id="|=w(rg9I3Tk._9T2dO_u"> <field name="TEXT">{</field> </block> </value> <value name="ADD1"> <block type="text" id="N?q);w`,?pgNEZqy*iKm"> <field name="TEXT">"Menge": </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="-0BKL[svCn38_Dk6r8Re"> <field name="VAR" id="eC_/`QKB}RDomD/!f`2(">menge</field> </block> </value> <value name="ADD3"> <block type="text" id="[mcs0#N8T8^h4Avd:gz:"> <field name="TEXT">,</field> </block> </value> <value name="ADD4"> <block type="text" id=")-0^Mq|d)viAo%E$knU="> <field name="TEXT">"Uhrzeit": </field> </block> </value> <value name="ADD5"> <block type="variables_get" id="!njw#Ea-DB%O4bO-k/w["> <field name="VAR" id="=6CKA)s(^BO%_#ARX,ha">uhr</field> </block> </value> <value name="ADD6"> <block type="text" id="f=Wen4aiTwPTz[8f{Mmq"> <field name="TEXT">}</field> </block> </value> </block> </value> <next> <block type="debug" id="_1IqMaUw7{]@R:76mk^e"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="/r_qH~6F6O;*R.ptCOtV"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="34fC3she}{.5VwOSaE*@"> <field name="VAR" id="2=_{8jqd?@yULPnj/[!_">test</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="variables_get" id="VrF#H4IBM+Bhd@]~nVo/" x="812" y="138"> <field name="VAR" id=";SIrJn_z=H*D@t2AxtHF">Liste</field> </block> </xml>
Das Ergebniss sieht so aus
02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 02:30} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 02:35} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 02:40} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 02:45} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 02:50} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 02:55} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:00} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:05} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:10} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:15} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:20} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:25} 02:26:20.063 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:30} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:35} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:40} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:45} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:50} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 03:55} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 04:00} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 04:05} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 04:10} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 04:15} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 04:20} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": 000,"Uhrzeit": 04:25} 02:26:20.064 info javascript.0 (3489476) script.js.common.Skript_3: {"Menge": ,"Uhrzeit": }
Wie kann ich die einzelnen Ergebnisse in ein Objekt bekommen?
-
Nachdem ich ja eher NodeRed Fan bin und mich da schon bisschen mit dem genialen JSONATA befasse - wollte ich mal sehen, ob das für Blockly auch machbar ist.
Also probier das mal:
-
Das ist leider nicht das richtig Format.
[{'Menge':'000','Uhrzeit':'08:15'},{'Menge':'000','Uhrzeit':'08:20'},{'Menge':'000','Uhrzeit':'08:25'}]
-
@chris76e das ist Dich exakt das gleiche.
-
Habe jetzt noch im Blockly "Objekt mach JSON" eingefügt.
Jetzt wird es richtig erstellt und als JSON erkannt.
[ { "Menge": "000", "Uhrzeit": "11:50" }, { "Menge": "000", "Uhrzeit": "11:55" }, { "Menge": "000", "Uhrzeit": "12:00" }, { "Menge": "000", "Uhrzeit": "12:05" }, { "Menge": "000", "Uhrzeit": "12:10" }, { "Menge": "000", "Uhrzeit": "12:15" }, { "Menge": "000", "Uhrzeit": "12:20" }, { "Menge": "000", "Uhrzeit": "12:25" }, { "Menge": "000", "Uhrzeit": "12:30" }, { "Menge": "000", "Uhrzeit": "12:35" }, { "Menge": "000", "Uhrzeit": "12:40" }, { "Menge": "000", "Uhrzeit": "12:45" }, { "Menge": "000", "Uhrzeit": "12:50" }, { "Menge": "000", "Uhrzeit": "12:55" }, { "Menge": "000", "Uhrzeit": "13:00" }, { "Menge": "000", "Uhrzeit": "13:05" }, { "Menge": "000", "Uhrzeit": "13:10" }, { "Menge": "000", "Uhrzeit": "13:15" }, { "Menge": "000", "Uhrzeit": "13:20" }, { "Menge": "000", "Uhrzeit": "13:25" }, { "Menge": "000", "Uhrzeit": "13:30" }, { "Menge": "000", "Uhrzeit": "13:35" }, { "Menge": "000", "Uhrzeit": "13:40" }, { "Menge": "000", "Uhrzeit": "13:45" }, { "Menge": "" } ]
-
@chris76e OK ich konnte das nicht erkennen - ob Objekt oder JSON string - bin aber davon ausgegangen, dass Du beides entsprechend nach Bedarf aus dem Objekt bzw. umgekehrt erzeugen kannst. Ich halte es in jedem Fall einfacher, als über Schleifen, was zusammen zu basteln. Im Prinzip hättest Du Deine Strings auch nur in eine Liste überführen müssen.
Da hättest ja nur die Liste bei jedem Schleifendurchlauf um den String erweitern müssen.
Aber wie gesagt ich mag das Blockly eh nicht - mir ging es nur mal darum zu sehen, wie JSONATA in Blockly funktioniert und das ihr "Blocklies" durchaus auch Interesse an JSONATA haben könnt.
Ist doch trotzdem wesentlich einfacher als Deine Schleife.