Loading JSON to an array

Get help using Construct 2

Post » Sun Nov 04, 2012 4:29 pm

Hey,

I'm having trouble trying to fill an array by loading JSON data, are there any need-to-know tips or known issues with this?


I have one project where I built a simple editor and then place the value in a text field using the .asJSON expression of the array. Everything works fine there as far as I can tell -- the JSON data appears to be alright to me.

I'm experiencing my problem working with my second (game) project. I have an array with the same dimensions (19,11,1) as the one from the original project and I'm trying to load the JSON data by pasting in the entire string obtained from the other project. I've tried doing this with or without surrounding quotation marks, but I'm getting syntax errors every time I try to submit the dialog.


My JSON string is as follows:

----------------------------------------
{"c2array":true,"size":[19,11,1],"data":[[["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_door"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_door"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_door"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_passable"],["tile_impassable"]],[["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_door"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"],["tile_impassable"]]]}
----------------------------------------


Any ideas? Would a .capx help to diagnose this particular problem?

Thanks in advance!
B
24
S
5
G
2
Posts: 104
Reputation: 3,136

Post » Sun Nov 04, 2012 5:52 pm

When you're entering a string into a text field you need surrounding quotation marks but you also need to replace any quotation marks inside the string with double quotation marks.


"{""c2array"":true,""size"":[19,11,1],""data"":[[[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_door""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_door""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_door""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_passable""],[""tile_impassable""]],[[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_door""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""],[""tile_impassable""]]]}"
B
54
S
28
G
18
Posts: 1,520
Reputation: 25,000

Post » Sun Nov 04, 2012 6:34 pm

Don't bother pasting JSON data in to expressions, it's totally unmanageable. Import a .json file (really just a text file) to the project with the JSON data in it, AjAX request that, and load the result.
Scirra Founder
B
359
S
214
G
72
Posts: 22,949
Reputation: 178,544

Post » Mon Nov 05, 2012 2:15 am

@ramones: Thank you so much, I hadn't thought about needing to escape quotes or anything of the sort, but now it's working perfectly.

@Ashley: Thanks for the suggestion -- and I might normally agree, that's how I've used JSON previously -- but in this case I'll only be loading a maximum of 2-5 arrays of data that don't need to be dynamically loaded, and I'd prefer to simply hard-code them into my initialisation event rather than adding an additional otherwise unneeded plugin to the project to load them in.


Thanks again to both of you, and especially Ashley for such a great product!
B
24
S
5
G
2
Posts: 104
Reputation: 3,136

Post » Sun Nov 17, 2013 10:47 pm

Does the json data format have to be in the above oda c2array size data, my genereated data does it in any order e.g c2array, data, size. But I can't seem to read the data, I get javascript error.
B
15
S
4
Posts: 138
Reputation: 2,003


Return to How do I....?

Who is online

Users browsing this forum: R0J0hound, randomly, spcsmrf and 27 guests