2010-05-20 41 views
3

鉴于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 

如何创建与上面的信息数组?

感谢

+0

这个字符串从哪里来?你纯粹是想要一个数组,还是嵌套结构?你会一直只有身份证/孩子/班级的领域,还是其他人可能? – 2010-05-20 08:52:01

+0

相关问题: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

+0

另外http ://stackoverflow.com/questions/2871002/coldfusion-taking-a-serialized-string-and-converting-it-to-a-structure – 2010-05-20 09:01:36

回答

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()将字符串转回到阵列中。