Я делаю API блога и у меня возникают некоторые очень странные проблемы при попытке создать массив структур в Coldfusion. Массив верхнего уровня будет содержать пост в виде структуры с .comments, который является массивом всех комментариев под этим постом, а также в виде структур.
Каждая из частей в следующем коде работает индивидуально. Но, так или иначе, когда я собираю их вместе, я получаю бесконечно вложенный массив структур, содержащий массив структур и т. Д., И все это только самый последний элемент в массиве сообщений верхнего уровня.
<cfset posts = VARIABLES.postDao.getBlogPosts(argumentCollection=arguments) />
<cfset result = arraynew(1) />
<cfloop index="i" from="1" to="#arrayLen(posts)#">
<cfset post = posts[i].getInstance()>
<cfset StructInsert(post, 'comments', getComments(post.postId))>
<cfset ArrayAppend(result, post)>
</cfloop>
getBlogPosts возвращает массив объектов EJB.
bean.getInstance () возвращает структуру со всеми данными в компоненте.
getComments (id) возвращает массив всех комментариев (структур) для post [id].
Каждый из них работает по назначению и используется в другом месте без проблем.
Структура бесконечно вложенного массива такова:
Array containing Post
. Post.comments containing array of comments + Post on end
. . Post.comments containing array of comments + Post on end
. . . etc...