想知道是否有人可以提供帮助
我正在使用RIAForge中的一些代码,这些代码与Last.fm api集成...
其中一个方法作为结构输出,但我想修改代码,使其作为数组输出,我不确定如何做到这一点。
目前代码是这样的
<cfscript>
var args = StructNew();
var returnStruct = StructNew();
var results = "";
var i = 0;
args['playlistURL'] = arguments.playlistURL;
results = super.callMethod('playlist.fetch', args).playlist;
returnStruct['title'] = results[':title'];
returnStruct['annotation'] = results[':annotation'];
returnStruct['creator'] = results[':creator'];
returnStruct['date'] = results[':date'];
if(StructKeyExists(results, ':trackList') AND StructKeyExists(results[':trackList'], ':track')){
results = super.ensureArray(results[':trackList'][':track']);
returnStruct['tracks'] = QueryNew('album,creator,duration,identifier,image,info,title');
for(i=1; i LTE ArrayLen(results); i=i+1){
QueryAddRow(returnStruct.tracks);
QuerySetCell(returnStruct.tracks, 'album', results[i].album);
QuerySetCell(returnStruct.tracks, 'creator', results[i].creator);
QuerySetCell(returnStruct.tracks, 'duration', results[i].duration);
QuerySetCell(returnStruct.tracks, 'identifier', results[i].identifier);
QuerySetCell(returnStruct.tracks, 'image', results[i].image);
QuerySetCell(returnStruct.tracks, 'info', results[i].info);
QuerySetCell(returnStruct.tracks, 'title', results[i].title);
}
}
return returnStruct;
我只是想知道是否有一个coldfusion方法允许我将returnStruct转换为查询..
非常感谢
答案 0 :(得分:4)
在CF 10和Railo 4中,如果要将一组结构转换为查询,则可以使用QueryNew() function。
用法:QueryNew(columnList, columnTypeList, arrayOfStructs)
答案 1 :(得分:2)
CFLIB.org是你的朋友
答案 2 :(得分:1)
您需要通过循环结果并放入数组数组来手动完成。如果您希望将结构转换为查询,则http://www.cflib.org处的函数已准备就绪。
var returnArray = []; /* or arrayNew(1) if not on Railo or CF9 */
/* ACF9 or Railo Style */
arrayAppend(returnArray, [results[':title'],results[':annotation'],results[':creator'],results[':date'] ]);
/* ACF8 and earlier */
arrayAppend( returnArray, arrayNew(1) ]);
arrayAppend( returnArray[ arrayLen(returnArray) ], results[':title'] ]);
arrayAppend( returnArray[ arrayLen(returnArray) ], results[':annotation'] ]);