鉴于ColdFusion的以下字符串:ColdFusion,HowTo将字符串转换为数组?
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
如何创建与上面的信息数组?
感谢
鉴于ColdFusion的以下字符串:ColdFusion,HowTo将字符串转换为数组?
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
如何创建与上面的信息数组?
感谢
这不是从字符串完全清楚,但我最好的猜测是,你正在寻找这样的事情。它是一系列结构的结构,观察到所有“更深”的数组(如children
)似乎只有一个元素(即只有一个children[0]
,它的值是一个带有键id
和class
的结构,每个似乎只有一个值)。
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()
将字符串转回到阵列中。
从查看字符串看来,您要做的是将url查询字符串转换为结构数组。这是我们在调度员的cfwheels中完成的事情,而且非常复杂。看看我们是如何做的,看看调度代码:
http://code.google.com/p/cfwheels/source/browse/trunk/wheels/dispatch/request.cfm
方法来看待是:
$的CreateParams()
$ getParameterMap()
$ createNestedParamStruct()
$ createNewArrayStruct()
表单实用程序cfc听起来像你所需要的。
这个字符串从哪里来?你纯粹是想要一个数组,还是嵌套结构?你会一直只有身份证/孩子/班级的领域,还是其他人可能? – 2010-05-20 08:52:01
相关问题:http://stackoverflow.com/questions/2871021/how-to-take-a-serialized-string-from-the-db-and-output-a-ul-list-with-coldfusion – 2010-05-20 08:57:11
另外http ://stackoverflow.com/questions/2871002/coldfusion-taking-a-serialized-string-and-converting-it-to-a-structure – 2010-05-20 09:01:36