flex json使用需注意的

1.定义ArrayCollection,如下:
            [Bindable]
            private var medalsAC:ArrayCollection = new ArrayCollection( [
             { Country: "第22期", Gold: 5, Silver:0, Bronze: 0 },
            { Country: "第23期", Gold: 2, Silver:0, Bronze: 0 },
             { Country: "第24期", Gold: 6, Silver:0, Bronze: 0 },
            { Country: "第25期", Gold: 8, Silver:0, Bronze: 0 },
             { Country: "第26期", Gold: 1, Silver:0, Bronze: 0 },
            { Country: "第27期", Gold: 5, Silver:0, Bronze: 0 },
             { Country: "第28期", Gold: 1, Silver:0, Bronze: 0 },
            { Country: "第29期", Gold: 9, Silver:0, Bronze: 0 },
            { Country: "第30期", Gold: 3, Silver:0, Bronze: 0 } ]);
//使用json生成ArrayCollection需要注意的是属性值需转义为字符串,如\"Country\"
private function createXML(array:Array):void
            {
              var xmlString:String="[";
              var a:int = array.length;
              for(var i:int=0;i<a;i++)
              {
               if(i==a-1)
               {
                xmlString+="{\"Country\":\""+array[i].Qs+"\",\"Gold\":"+array[i][head.select]   +",\"Silver\":0, \"Bronze\": 0}";
               }else
               {
                xmlString+="{\"Country\":\""+array[i].Qs+"\", \"Gold\":"+array[i][head.select]+", \"Silver\":0, \"Bronze\": 0},";
               }
               
              }
              xmlString+="]";
              var arr:Array = (JSON.decode(xmlString) as Array);
              var dp:ArrayCollection = new ArrayCollection(arr);
              column.dataProvider=dp;
            }

你可能感兴趣的:(json,Flex)