根据我对过去经验的了解,可以像参考2D数组一样引用coldfusion查询列。有时虽然我遇到了这个问题。
File#renameTo()
我只剩下第一列中的第一个元素。我当然得到了:
Files.move(oldName.toPath(), newName.toPath(), StandardCopyOption.REPLACE_EXISTING);
尝试这样做时:
//imports is a query object after this function
var imports = convertSpreadsheetWOHeaders(spreadsheet, 1);
//this is used to give name values in the json struct, not to access the query columns
var jsonHeaders = ListToArray("number,constructiontype,description,site_address,parcel,permit_date,note_Applicant,note_Contractor,valuation,note_Bld_Fees,note_Other_Fees");
//this gives me ["col_1","col_2","col_3",,,etc]. used to access query columns
var columnHeaders = imports.getColumnNames();
writeDump(imports[columnHeaders[1]]);
writeDump(imports);
然而,这有效:
//imports is a query object after this function
var imports = convertSpreadsheetWOHeaders(spreadsheet, 1);
//this is used to give name values in the json struct, not to access the query columns
var jsonHeaders = ListToArray("number,constructiontype,description,site_address,parcel,permit_date,note_Applicant,note_Contractor,valuation,note_Bld_Fees,note_Other_Fees");
//this gives me ["col_1","col_2","col_3",,,etc]. used to access query columns
var columnHeaders = imports.getColumnNames();
writeDump(imports[columnHeaders[1]]);
writeDump(imports);
我首先转储导入[" col_1"] ,我只获得第一个元素。 然后我像你在上面的图片中看到的那样转储 ListToArray(ArrayToList(导入[" col_1"])),它给了我整列。
为什么我不能在第一时间正确访问列?
答案 0 :(得分:3)
真正的问题:
我最初尝试将jsonHeaders列表作为数组访问而不对其进行ListToArray()
。之后,我的功能发挥了作用。
<强> BUT。下一部分很有帮助。
尝试访问查询对象时,queryObject["columnName"]
被视为queryObject["columnName"][1]
的快捷方式,因此coldfusion只会为您提供第一个元素。
但是当我说ListToArray(ArrayToList())
时,coldfusion看到ArrayToList
必须接受一个数组,因此会产生异常并且该列将作为数组返回。
要将列作为数组运行,可以执行一些操作
ListToArray(ArrayToList(query["column"]));
ListToArray(valueList(query.column));
valueArray(query, "column");