How convert JSON string to multidimensional array?
I'm just starting to learn this JSON-stuff, but I cant get it to work.
I am using the JSON class from here: http://www.json.org/json.as
I have a php-script that collects some info on a given month of the year, stores that as a multidimensional array, then converts that array to a JSON object using the built in php function json_encode. (info here: http://usphp.com/manual/en/function.json-decode.php)
Then I echo that string. This seems to work. If I just look at the echoed output in a browser it reads:
-----------
{"day1":{"weekday_number":"1","name_abbr":"Mon","name_full":"Monday"},"total_days":"30","day2":{"name_abbr":"Tue","name_full":"Tuesday","weekday_number":2},"day3":{"name_abbr":"Wed","name_full":"Wednesday","weekday_number":3},"day4":{"name_abbr":"Thu","name_full":"Thursday","weekday_number":4},"day5":{"name_abbr":"Fri","name_full":"Friday","weekday_number":5},"day6":{"name_abbr":"Sat","name_full":"Saturday","weekday_number":6},"day7":{"name_abbr":"Sun","name_full":"Sunday","weekday_number":0},"day8":{"name_abbr":"Mon","name_full":"Monday","weekday_number":1},"day9":{"name_abbr":"Tue","name_full":"Tuesday","weekday_number":2},"day10":{"name_abbr":"Wed","name_full":"Wednesday","weekday_number":3},"day11":{"name_abbr":"Thu","name_full":"Thursday","weekday_number":4},"day12":{"name_abbr":"Fri","name_full":"Friday","weekday_number":5},"day13":{"name_abbr":"Sat","name_full":"Saturday","weekday_number":6},"day14":{"name_abbr":"Sun","name_full":"Sunday","weekday_number":0},"day15":{"name_abbr":"Mon","name_full":"Monday","weekday_number":1},"day16":{"name_abbr":"Tue","name_full":"Tuesday","weekday_number":2},"day17":{"name_abbr":"Wed","name_full":"Wednesday","weekday_number":3},"day18":{"name_abbr":"Thu","name_full":"Thursday","weekday_number":4},"day19":{"name_abbr":"Fri","name_full":"Friday","weekday_number":5},"day20":{"name_abbr":"Sat","name_full":"Saturday","weekday_number":6},"day21":{"name_abbr":"Sun","name_full":"Sunday","weekday_number":0},"day22":{"name_abbr":"Mon","name_full":"Monday","weekday_number":1},"day23":{"name_abbr":"Tue","name_full":"Tuesday","weekday_number":2},"day24":{"name_abbr":"Wed","name_full":"Wednesday","weekday_number":3},"day25":{"name_abbr":"Thu","name_full":"Thursday","weekday_number":4},"day26":{"name_abbr":"Fri","name_full":"Friday","weekday_number":5},"day27":{"name_abbr":"Sat","name_full":"Saturday","weekday_number":6},"day28":{"name_abbr":"Sun","name_full":"Sunday","weekday_number":0},"day29":{"name_abbr":"Mon","name_full":"Monday","weekday_number":1},"day30":{"name_abbr":"Tue","name_full":"Tuesday","weekday_number":2}}
-----------
It seems to be formatted okay.
This string is what I want to load into flash, and then convert it to a multidimensional array again in flash.
So I have this code in actionscript (see attached)
I do load the string, I know that much, because trace(jsonString) outputs a string.
However, all the quotes are escaped with backslashes. So the trace óf the loaded string looks like this:
-----------
{"{\"day1\":{\"weekday_number\":\"1\",\"name_abbr\":\"Mon\",\"name_full\":\"Monday\"},\"total_days\":\"30\",\"day2\":{\"name_abbr\":\"Tue\",\"name_full\":\"Tuesday\",\"weekday_number\":2},\"day3\":{\"name_abbr\":\"Wed\",\"name_full\":\"Wednesday\",\"weekday_number\":3 ........ etc etc
---------
So my questions:
- why are the quotes escaped with backslashes? Does this matter when I try to convert the string to an object? Why is this happening?
- I want to make this string into an array in flash... how do I do it? and how do I access the items in the array once it has been converted to an array?
var jsondata:LoadVars = new LoadVars();var JSON:JSON = new JSON();jsondata.onLoad = function() { var jsonString:String = JSON.stringify(this); trace(jsonString); //this works, but the output shows a string where every " has been escaped like so: \" var jsonObject:Object = JSON.parse(jsonString); trace (jsonObject);//this outputs [object Object], so it seems some kind of object has been created, but how do I know, and how do I access the items?};jsondata.load($php_filepath);
If you read the JSON inside the action script and parse it, then the JSON content should be available to you directly in name/value pairs - no need to do anything with the json to create arrays or such...
NiklasMoller
ASKER
Ok. thanks for taking the time anyway.
I think I am getting closer to understanding the issue by myself, I will post anything here if I manage to solve the problem...
If anybody else has a working solution to what I am trying to do, please suggest it! :)
thanks
I found this
http://www.json.org/json.as