Coldfusion查询断列结构

Coldfusion查询断列结构,coldfusion,cfml,cfquery,Coldfusion,Cfml,Cfquery,根据我过去的经验,coldfusion查询的列可以像二维数组一样被引用。虽然有时我会遇到这个问题 从电子表格创建查询 将列名放入数组中 尝试访问行时仅获取第一个元素 必须使用变通方法 我只剩下第一列中的第一个元素。我当然得到: structInsert(jsonStruct,jsonHeaders[j],imports[columnHeaders[j]][i]); 尝试执行此操作时: writeDump(ListToArray(ArrayToList(imports[columnHea

根据我过去的经验,coldfusion查询的列可以像二维数组一样被引用。虽然有时我会遇到这个问题

  • 从电子表格创建查询
  • 将列名放入数组中
  • 尝试访问行时仅获取第一个元素
  • 必须使用变通方法
  • 我只剩下第一列中的第一个元素。我当然得到:

    structInsert(jsonStruct,jsonHeaders[j],imports[columnHeaders[j]][i]);
    
    尝试执行此操作时:

     writeDump(ListToArray(ArrayToList(imports[columnHeaders[1]],'|'),'|',true));
    
    然而,这是可行的:

    ListToArray(ArrayToList(query["column"]));
    ListToArray(valueList(query.column));
    valueArray(query, "column");
    

    我首先转储导入[“col_1”],只得到第一个元素。 然后我转储列表到数组(ArrayToList(imports[“col_1”])如上图所示,它为我提供了整个列。

    为什么我首先不能正确访问列?

    真正的问题是:

    我最初尝试将jsonHeaders列表作为数组访问,而没有对其执行
    ListToArray()
    。之后,我的功能正常运行。

    但是。下一部分很有帮助。

    尝试访问查询对象时,执行
    queryObject[“columnName”]
    被认为是
    queryObject[“columnName”][1]
    的快捷方式,因此coldfusion将只提供第一个元素

    但是当我说
    ListToArray(ArrayToList())
    coldfusion看到
    ArrayToList
    必须接受一个数组,因此会产生一个异常,并将列作为数组返回

    要将列作为数组返回以使用,可以做以下几件事


    我搞不懂你的问题是什么。对不起,各位。只是补充了一个问题。转换后它为什么工作?最后一个屏幕截图是什么对象的转储:columnHeaders,imports,…@Leigh dump,imports
    WriteMap中第一列的转储(ListToArray(ArrayList(imports[columnHeaders[i]],“|”),“|”,true))哦,等等。。。如果
    imports
    是一个查询对象,它将解释为什么
    imports[“col_1”]
    不起作用。传统上,在CF中,
    #queryName.columnName#
    queryName[“columnName”]
    被视为查询第一行中
    #queryName.columnName[1]#
    ie值的快捷方式,这显然是一个简单的值<代码>阵列列表
    是此约定的例外。我认为它的行为有所不同,因为该函数需要一个数组,而不是一个简单的值。
     writeDump(ListToArray(ArrayToList(imports[columnHeaders[1]],'|'),'|',true));
    
    ListToArray(ArrayToList(query["column"]));
    ListToArray(valueList(query.column));
    valueArray(query, "column");