added JSON library

upd4.2
Bernat Romagosa 2018-07-02 11:28:19 +02:00
rodzic 6fee9698ed
commit 7d823067d0
2 zmienionych plików z 2 dodań i 0 usunięć

Wyświetl plik

@ -19,3 +19,4 @@ pixel_module.xml Pixels manipulate costumes pixel-wise.
audioComp_module.xml Audio Comp analyze, manipulate and generate sound samples.
atomic_HOFs_module.xml "Bigger" Data [EXPERIMENTAL] crunch large lists very fast
make-variables.xml create variables in program declare global or sprite-local variables in a script
json.xml Deal with JSON data Turn JSON strings into lists with the listify block, then retrieve data out of them by using the value at key block.

Wyświetl plik

@ -0,0 +1 @@
<blocks app="Snap! 4.1, http://snap.berkeley.edu" version="1"><block-definition s="listify %&apos;jsonString&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>jsonString</l></list><l>return listify(JSON.parse(jsonString));&#xD;&#xD;function listify(jsonObject) {&#xD; if (jsonObject instanceof Array) {&#xD; return new List(jsonObject.map(function(eachElement) { return listify(eachElement)}));&#xD; } else if (jsonObject instanceof Object) {&#xD; return new List(Object.keys(jsonObject).map(function(eachKey) { return new List([eachKey,listify(jsonObject[eachKey])])} ))&#xD; } else {&#xD; return jsonObject&#xD; }&#xD;}</l></block><list><block var="jsonString"/></list></block></block></script></block-definition><block-definition s="value at key %&apos;key&apos; of %&apos;lst&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>each item</l><block var="lst"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="each item"/></block><block var="key"/></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="each item"/></block></block></script></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition></blocks>