Конвертировать структуру в запрос Coldfusion - PullRequest
1 голос
/ 28 февраля 2010

Интересно, если кто-нибудь может помочь

Я использую некоторый код из 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 в запрос ..

Большое спасибо

Ответы [ 3 ]

4 голосов
/ 30 декабря 2012

В CF 10 и Railo 4 вы можете использовать функцию QueryNew () , если у вас есть массив структур, которые вы хотите преобразовать в запрос.

Использование: QueryNew(columnList, columnTypeList, arrayOfStructs)

2 голосов
/ 04 марта 2010

CFLIB.org твой друг

QueryToArrayOfStructures

1 голос
/ 28 февраля 2010

Вам нужно будет сделать это вручную, перебирая результаты и помещая их в Array of Arrays. Если вы хотите преобразовать свою структуру в запрос, есть функции на 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'] ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...