【问题标题】:ColdFusion, HowTo Convert a String to an Array?ColdFusion,如何将字符串转换为数组?
【发布时间】:2011-02-21 16:57:52
【问题描述】:

在 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 

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

谢谢

【问题讨论】:

标签: jquery coldfusion arrays loops


【解决方案1】:

从查看字符串看来,您正在尝试做的是将 url 查询字符串转换为结构数组。这是我们在调度程序的cfwheels 中所做的事情,它非常复杂。要了解我们是如何做到的,请查看调度程序代码:

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

查看的方法有:

$createParams()

$getParameterMap()

$createNestedParamStruct()

$createNewArrayStruct()

【讨论】:

    【解决方案2】:

    从那个字符串中并不完全清楚,但我最好的猜测是你正在寻找这样的东西。这是一个结构体的数组,观察到所有“更深”的数组(如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() 将字符串转回数组中。

    【讨论】:

      【解决方案3】:

      Form Utilities cfc 听起来像是您需要的。

      http://formutils.riaforge.org/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-11
        • 2021-02-11
        相关资源
        最近更新 更多