ColdFusion,如何将字符串转换为数组?

时间:2010-05-20 05:21:29

标签: jquery coldfusion arrays loops

在ColdFusion中给出以下字符串:

ul[0][id]=main1 &ul[0][children][0][id]=child2 &ul[0][children][0][class]= &ul[1][id]=main3 &ul[2][id]=main4 &ul[3][id]=main5 

如何使用上述信息创建数组?

由于

3 个答案:

答案 0 :(得分:2)

从查看字符串看起来你要做的是将url查询字符串转换为结构数组。这是我们在调度员cfwheels中完成的事情,而且非常复杂。要了解我们是如何做到的,请查看调度程序代码:

http://code.google.com/p/cfwheels/source/browse/trunk/wheels/dispatch/request.cfm

要查看的方法是:

$的CreateParams()

$ getParameterMap()

$ createNestedParamStruct()

$ createNewArrayStruct()

答案 1 :(得分:1)

这个字符串并不完全清楚,但我最好的猜测是你正在寻找这样的东西。这是一个结构结构的数组,在观察到所有“更深”的数组(如children)似乎只有一个元素(即只有children[0],其值是一个结构密钥idclass,每个密钥似乎只有一个值。)

ul                         = [];
ul[1]                      = {}; // ColdFusion arrays are not zero-indexed
ul[1]['id']                = 'main1';
ul[1]['children']          = {}; // Another struct
ul[1]['children']['id']    = 'child2';
ul[1]['children']['class'] = '';  // blank in your example
ul[2]['id']                = 'main3';
ul[3]['id']                = 'main4';

...etc...

我假设您以某种方式解析该编码字符串,并且您将循环并在每次迭代时创建新的数组元素。有更简洁的方法可以做到这一点。

但这可能会提出一个问题:将编码数组存储为标准格式,通过本机CFML函数轻松编码和解码会不会更好?在数组上使用serializeJSON()获取字符串,使用deserializeJSON()将字符串转回数组。

答案 2 :(得分:0)

Form Utilities cfc听起来就像你需要的那样。

http://formutils.riaforge.org/