<snapdata remixID="9951308"><project name="parse json" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes>turn on turbo mode&#xD;&#xD;this project uses JS from the "Catch errors" library, that doesn&apos;t count as actual JS code. I used that library to throw errors when the JSON is wrong.</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADOUlEQVR4Xu3XQUpjYRCF0V9RcOIW3I8bEHSgBtyJ28kmsh5x4iQEB6/BWQ+U5nLpAjkZp6rIeR88crZt27Z8CAwJnAlwSN7ZLwEBCmFUQICj/I4LUAOjAgIc5XdcgBoYFRDgKL/jAtTAqIAAR/kdF6AGRgUEOMrvuAA1MCogwFF+xwWogVEBAY7yOy5ADYwKCHCU33EBamBUQICj/I4LUAOjAgIc5XdcgBoYFRDgKL/jAtTAqIAAR/kdF6AGRgUEOMrvuAA1MCogwFF+xwWogVEBAY7yOy5ADYwKCHCU33EBamBUQICj/I4LUAOjAgIc5XdcgBoYFRDgKL/jAtTAqIAAR/kdF6AGRgUEOMrvuAA1MCogwFF+xwWogVEBAY7yOy5ADYwKCHCU33EBamBUQICj/I4LUAOjAgIc5XdcgBoYFRDgKL/jAtTAqIAAv+Hf7/fr/f193d7erpubm9GH9JuPC/Cbp/vx8bFeXl7W5+fnent7W/f39+vi4mI9PT2tq6ur39zEf/1tAvyB+3A4rNfX13V9ff3Xt47H43p+fl7btn2F6ZMLCDAI8HQ6rcfHx3V+fr7u7u5yfZNLgP/4Cn54ePh6Be92u3V5eSmdkoAA/QkppZStEWDmZqokIMASpDWZgAAzN1MlAQGWIK3JBASYuZkqCQiwBGlNJiDAzM1USUCAJUhrMgEBZm6mSgICLEFakwkIMHMzVRIQYAnSmkxAgJmbqZKAAEuQ1mQCAszcTJUEBFiCtCYTEGDmZqokIMASpDWZgAAzN1MlAQGWIK3JBASYuZkqCQiwBGlNJiDAzM1USUCAJUhrMgEBZm6mSgICLEFakwkIMHMzVRIQYAnSmkxAgJmbqZKAAEuQ1mQCAszcTJUEBFiCtCYTEGDmZqokIMASpDWZgAAzN1MlAQGWIK3JBASYuZkqCQiwBGlNJiDAzM1USUCAJUhrMgEBZm6mSgICLEFakwkIMHMzVRIQYAnSmkxAgJmbqZKAAEuQ1mQCAszcTJUEBFiCtCYTEGDmZqokIMASpDWZgAAzN1MlAQGWIK3JBASYuZkqCQiwBGlNJiDAzM1USUCAJUhrMgEBZm6mSgJ/AE38F7dMeMlrAAAAAElFTkSuQmCC</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10" y="10"><custom-block s="parse json %code"><l>[&#xD;	{&#xD;		"name": "Yorro Climbs a Tree",&#xD;		"thumb": "climbtree.png",&#xD;		"id": "3VSO1vVrXpo",&#xD;		"desc": "The title is very self-explanatory.",&#xD;		"category": "Pubot and Yorro",&#xD;		"date": "7/14/2020"&#xD;	},&#xD;	{&#xD;		"name": "Capsaicin animation",&#xD;		"thumb": "capsaicin-animation.png",&#xD;		"id": "EtkEgDChTEs",&#xD;		"desc": "The brave Yorro fights with the evil Dr. Capsaicin",&#xD;		"category": "Pubot and Yorro",&#xD;		"date": "3/17/2020"&#xD;	},&#xD;	{&#xD;		"name": "wysicotyh",&#xD;		"thumb": "nimation-wysicotyh.png",&#xD;		"id": "fbsZ70xErL8",&#xD;		"desc": "Why you shouldn&apos;t invite Coney over to your house",&#xD;		"category": "&apos;nimation",&#xD;		"date": "10/02/2019"&#xD;	},&#xD;	{&#xD;	  "name": "rc short",&#xD;	  "thumb": "nim-rc.png",&#xD;	  "id": "zwVZSeGvORs",&#xD;	  "desc": "don&apos;t watch this please it sucks",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "07/25/2019"&#xD;	},&#xD;	{&#xD;	  "name": "\"sleepover\"",&#xD;	  "thumb": "nimation-sleepover.png",&#xD;	  "id": "h0mQE1vgQqg",&#xD;	  "desc": "The friends have a \"sleepover\"",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "06/30/2019"&#xD;	},&#xD;	{&#xD;	  "name": "boat short",&#xD;	  "thumb": "nim-boat.png",&#xD;	  "id": "dbxa7-ehCqo",&#xD;	  "desc": "Two new characters not a reskin of an older one, Purple and Coney, go boating I guess.",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "06/06/2019"&#xD;	},&#xD;	{&#xD;	  "name": "&apos;nimation 3.0",&#xD;	  "thumb": "nimation3.0.png",&#xD;	  "id": "zqsOoAxg6Yo",&#xD;	  "desc": "Red, the friggin spoiled brat, wants to be at the party.",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "02/19/2019"&#xD;	},&#xD;	{&#xD;	  "name": "&apos;nimation (the prequel)-129",&#xD;	  "thumb": "nimation129.png",&#xD;	  "id": "Qty_xmmJCgg",&#xD;	  "desc": "Blu and Purple go to the future. *sit up or crunch up or whatever* FUUUTUREEEEEEEE",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "01/11/2019"&#xD;	},&#xD;	{&#xD;	  "name": "&apos;nimation (the prequel) 2 (Actual 2)",&#xD;	  "thumb": "nimationactual2.png",&#xD;	  "id": "dQw4w9WgXcQ",&#xD;	  "desc": "I hated this animation so much, I never shared it. But I guess I&apos;ll share it here",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "01/123456789/2019"&#xD;	},&#xD;	{&#xD;	  "name": "&apos;nimation (the prequel) part 2",&#xD;	  "thumb": "nimation2.png",&#xD;	  "id": "WFJS-oML_Qw",&#xD;	  "desc": "Realizing this sucked, I never added sound and didn&apos;t share it until a year later. So I don&apos;t know when this was actually made.",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "12/26/2018"&#xD;	},&#xD;	{&#xD;	  "name": "&apos;nimation (the prequel)",&#xD;	  "thumb": "nimation1.png",&#xD;	  "id": "xBwILJbUYTU",&#xD;	  "desc": "(DO NOT WATCH) (GONE WRONG) (IN THE HOOD)",&#xD;	  "category": "&apos;nimation",&#xD;	  "date": "12/18/2018"&#xD;	}&#xD;]</l></custom-block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="parse json %&apos;json&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%code"></input></inputs><script><block s="doDeclareVariables"><list><l>arrayParse</l></list></block><block s="doSetVar"><l>arrayParse</l><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>inQuotes</l><l>letter</l><l>temp</l><l>res</l><l>keyName</l></list></block><block s="doSetVar"><l>inQuotes</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>res</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>temp</l><l></l></block><block s="doSetVar"><l>keyName</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doFor"><l>i</l><l>2</l><block s="reportDifference"><block s="reportStringSize"><block var="items"/></block><l>1</l></block><script><block s="doSetVar"><l>letter</l><block s="reportLetter"><block var="i"/><block var="items"/></block></block><block s="doIfElse"><block var="inQuotes"/><script><block s="doIfElse"><block s="reportEquals"><block var="letter"/><l>\</l></block><script><block s="doDeclareVariables"><list><l>next</l></list></block><block s="doSetVar"><l>next</l><block s="reportLetter"><block s="reportSum"><block var="i"/><l>1</l></block><block var="items"/></block></block><block s="doIfElse"><block s="reportEquals"><block var="next"/><l>"</l></block><script><block s="doSetVar"><l>temp</l><block s="reportJoinWords"><list><block var="temp"/><l>"</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><script><block s="doSetVar"><l>temp</l><block s="reportJoinWords"><list><block var="temp"/><l>\</l></list></block></block></script></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="letter"/><l>"</l></block><script><block s="doSetVar"><l>inQuotes</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>temp</l><block s="reportJoinWords"><list><block var="temp"/><block var="letter"/></list></block></block></script></block></script></block></script><script><block s="doIf"><block s="reportNot"><custom-block s="is %s whitespace?"><block var="letter"/></custom-block></block><script><block s="doIfElse"><block s="reportEquals"><block var="letter"/><l>,</l></block><script><block s="doIfElse"><block s="reportEquals"><block var="keyName"/><block s="reportBoolean"><l><bool>false</bool></l></block></block><script><block s="doIf"><block var="isDict"/><script><custom-block s="error %txt"><l>Unexpected token , in JSON</l></custom-block></script></block><block s="doAddToList"><block var="temp"/><block var="res"/></block><block s="doSetVar"><l>temp</l><l></l></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="keyName"/><block var="temp"/></list></block><block var="res"/></block><block s="doSetVar"><l>temp</l><l></l></block><block s="doSetVar"><l>keyName</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="letter"/><l>:</l></block><script><block s="doIf"><block s="reportOr"><block s="reportNot"><block var="isDict"/></block><block s="reportNot"><block s="reportEquals"><block var="keyName"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block><script><custom-block s="error %txt"><l>Unexpected token : in JSON</l></custom-block></script></block><block s="doSetVar"><l>keyName</l><block var="temp"/></block><block s="doSetVar"><l>temp</l><l></l></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="letter"/><l>"</l></block><script><block s="doSetVar"><l>inQuotes</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doSetVar"><l>temp</l><block s="reportJoinWords"><list><block var="temp"/><block var="letter"/></list></block></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="letter"/><l>{</l></block><block s="reportEquals"><block var="letter"/><l>[</l></block></block><script><block s="doDeclareVariables"><list><l>depth</l></list></block><block s="doSetVar"><l>depth</l><l>1</l></block><block s="doUntil"><block s="reportLessThan"><block var="depth"/><l>1</l></block><script><block s="doChangeVar"><l>i</l><l>1</l></block><block s="doSetVar"><l>letter</l><block s="reportLetter"><block var="i"/><block var="items"/></block></block><block s="doSetVar"><l>temp</l><block s="reportJoinWords"><list><block var="temp"/><block var="letter"/></list></block></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="letter"/><l>{</l></block><block s="reportEquals"><block var="letter"/><l>[</l></block></block><script><block s="doChangeVar"><l>depth</l><l>1</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="letter"/><l>}</l></block><block s="reportEquals"><block var="letter"/><l>]</l></block></block><script><block s="doChangeVar"><l>depth</l><l>-1</l></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="keyName"/><block s="reportBoolean"><l><bool>false</bool></l></block></block><script><block s="doAddToList"><block var="temp"/><block var="res"/></block><block s="doSetVar"><l>temp</l><l></l></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="keyName"/><block var="temp"/></list></block><block var="res"/></block><block s="doSetVar"><l>temp</l><l></l></block><block s="doSetVar"><l>keyName</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doReport"><block var="res"/></block></script><list><l>items</l><l>isDict</l></list></block></block><block s="doDeclareVariables"><list><l>res</l><l>items</l></list></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="json"/></block><l>[</l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="parse json %code"><l></l></custom-block></autolambda><list></list></block><block s="evaluate"><block var="arrayParse"/><list><block var="json"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></block></script><comment w="90" collapsed="true">is array</comment></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="json"/></block><l>{</l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportListItem"><l>1</l><l/></block><custom-block s="parse json %code"><block s="reportListItem"><l>2</l><l/></block></custom-block></list></block></autolambda><list></list></block><block s="evaluate"><block var="arrayParse"/><list><block var="json"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></block></block></script><comment w="90" collapsed="true">is dictionary</comment></block><block s="doReport"><block var="json"/></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><custom-block s="let %upvar be %s"><l>reset</l><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>var oldHandleError = proc.handleError,&#xD;    oldCatchingErrors = proc.isCatchingErrors;&#xD;&#xD;return function(){&#xD; proc.handleError = oldHandleError;&#xD; proc.isCatchingErrors = oldCatchingErrors;&#xD;}</l></block><list></list></block></custom-block><block s="doCallCC"><block s="reifyScript"><script><block s="doRun"><block s="reportJSFunction"><list><l>reset</l><l>action</l><l>handler</l><l>proc</l></list><l>proc.isCatchingErrors = true;&#xD;proc.handleError = function(error, element){&#xD; reset();&#xD; proc.context = handler;&#xD; proc.context.variables.setVar("error", error);&#xD;}&#xD;&#xD;try{&#xD; proc.evaluate(action, new List(), true);&#xD;}&#xD;catch(e){&#xD; proc.handleError(e, null);&#xD;} </l></block><list><block var="reset"/><block var="action"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doRun"><block var="handler"/><list></list></block><block s="doRun"><block var="return"/><list></list></block></script><list></list></block><list></list></block></script><list></list></block></list></block></script><list><l>return</l></list></block></block><block s="doRun"><block var="reset"/><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg);</l></block><list><block var="msg"/></list></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><comment x="0" y="0" w="183.33333333333334" collapsed="false">LET (FOO) BE (5)&#xD;is equivalent to&#xD;SCRIPT VARIABLES (FOO)&#xD;SET (FOO) TO (5)</comment><header></header><code></code><translations>pt:cria a variável de guião _ com valor _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="is %&apos;char&apos; whitespace?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportOr"><block s="reportEquals"><block var="char"/><l> </l></block><block s="reportOr"><block s="reportEquals"><block s="reportUnicode"><block var="char"/></block><l>10</l></block><block s="reportEquals"><block s="reportUnicode"><block var="char"/></block><l>9</l></block></block></block><comment w="90" collapsed="false">10 = newline&#xD;9 = tab</comment></block></script></block-definition></blocks><variables></variables></project><media name="parse json" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>