String 我可以在不更改项目顺序的情况下将JSON字符串转换为Flex ArrayCollection吗?

String 我可以在不更改项目顺序的情况下将JSON字符串转换为Flex ArrayCollection吗?,string,actionscript-3,apache-flex,datagrid,flex4.5,String,Actionscript 3,Apache Flex,Datagrid,Flex4.5,关于这个问题,我已经从Java动态生成了字符串 [{"BranchName":"Corporate Office","Date":"08\/03\/2013","SPName":"Pharmacy","SPAmount_5-00%":"100.00","SPVATAmount_5-00%":"15.00","SPOtherCharges_5-00%":"30.00","SPAmount_14-50%":"200.00","SPVATAmount_14-50%":"39.00","SPOtherC

关于这个问题,我已经从Java动态生成了字符串

[{"BranchName":"Corporate Office","Date":"08\/03\/2013","SPName":"Pharmacy","SPAmount_5-00%":"100.00","SPVATAmount_5-00%":"15.00","SPOtherCharges_5-00%":"30.00","SPAmount_14-50%":"200.00","SPVATAmount_14-50%":"39.00","SPOtherCharges_14-50%":"71.00","SPColTPA":"100.00","SPColChequeDD":"50.00","SPHdfcCC":"100.00","SPIdbiCC":"100.00","SPColCash":"50.00","Difference":"55.00"},
但是当我用下面的代码转换数组集合时

var rawData:String = String(event.result); 
var arr:Array = (JSON.decode(rawData) as Array);
var dp:ArrayCollection = new ArrayCollection(arr);

但数组集合顺序更改为默认排序,如[Branch、Date、Difference,…]。但我想要和字符串格式相同的顺序。那么,如何防止默认订单

实际上,您在这里描述的是一个对象数组(您的示例仅包括一个对象)。在对数组的JSON解析中,每个对象实际上都是按照声明的顺序进行的;但在创建的对象中,特性可能不会按相同顺序列出

例如:

'[ {"Branch":"Corporate", "Department":"Finance", "Cost":"10000", "Attended":"true"},' +
'{"Branch":"Las Vegas", "Department":"Hospitality", "Cost":"20100", "Attended":"false"},' +
'{"Branch":"San Diego", "Department":"Banking", "Cost":"11023", "Attended":"true"}]'
解析将返回arr[0]作为公司对象,arr[1]作为拉斯维加斯对象,等等。遍历我得到的属性:

var obj:Object = dp.getItemAt(0);
for (var prop:String in obj) {
    trace(prop + ' is ' + obj[prop]);
}

Department is Finance
Attended is true
Branch is Corporate
Cost is 10000

如果包含有关生成的ArrayCollection的详细信息,可能会有所帮助。您控制转换的能力有限。您最好的选择可能是在事件发生后对ArrayCollection进行排序。