0 Replies Latest reply on Sep 1, 2008 8:56 AM by Stinky Tofu

    Flex and JSON

    Stinky Tofu
      I am having some trouble getting the JSON.decode() method working.

      I currently have the following JSON file in UTF-8 format:

      {"states":[{"id":140,"state":"Alabama","obama":6,"mccain":5,"ec":3},
      {"id":91,"state":"Alaska","obama":4,"mccain":5,"ec":3}],
      "USA":{"obama":7450, "mccain":7450}
      }

      I am accessing it in Flex with the following code:

      <mx:Script>
      private function onJSONLoad(event:ResultEvent):void
      {
      var rawData:String = String(event.result);
      var countries:Array = (JSON.decode(rawData) as Array);

      Alert.show(countries.length as String);
      var dp:ArrayCollection = new ArrayCollection(arr);

      voteTable.dataProvider = dp;
      }
      ]]>
      </mx:Script>

      <mx:HTTPService
      id="service"
      resultFormat="text"
      fault="faultHandler(event)"
      url=" http://localhost/gec/vote.json"
      result="onJSONLoad(event)"
      showBusyCursor="true" />

      However, for the life of me, I cannot get Flex to correctly parse the JSON code into an array. In the line:

      var countries:Array = (JSON.decode(rawData) as Array);

      The countries array never gets populated with any of the data from the JSON file, even though I the contents of the rawData variable correctly contain all the JSON code. The countries array always remains empty.

      Help me Obi-wan, you're our only hope!! I have been working on this problem for the past two days and have yet to figure out what is wrong.

      What am I doing wrong? Can someone point me in the right direction? Is there a problem with the JSON code structure? Is there something remarkably stupid I am overlooking? Hope someone can help look at this with a fresh pair of eyes and see if they can spot the problem, because I have really hit a wall here and don't know what else to do but to post on the forums for help!!

      Many thanks!

      Phil