Я не думаю, что это удобный способ сделать это, если вы не можете изменить код, сериализацию запрос; в противном случае вам понадобится использовать некоторые манипуляции с строкой. Тем не менее, если у вас есть доступ к CF кода, сериализации запрос, это немного неортодоксальные, но делает работу:
<!---Serialize and Deserialize the cfquery to shortcut obtaining a Structure--->
<cfset queryAsStruct = DeSerializeJSON(SerializeJSON(cfquery))>
<!---Now serialize the data key of the struct--->
<cfset dataJSON = SerializeJSON(queryAsStruct.data)>
Как я уже говорил, не самый красивый, может быть ... но, кажется, чтобы сделать это , Может быть более удобный/более эффективный способ преобразования cfquery в структуру, но это привело к наименьшему количеству строк кода для меня.
Редактировать: Просто подумал, чтобы объяснить, почему это работает. Строка JSON при десериализации ColdFusion больше не обнаруживается как объект запроса, а просто простая структура, поэтому ключ «DATA» создается и заполняется. Таким способом вы можете получить к нему доступ в качестве ключа структуры. Когда cfquery является объектом запроса, в то время как объект типа «struct» имеет особые соображения, которые не позволяют вам напрямую обращаться к ключу данных (насколько мне известно).
Какая у вас конечная цель? Вы можете получить доступ к запросу типа struct и вытащить данные, если это то, что вы после –
Строковые функции. Найдите положение двойных квадратных скобок и используйте функции справа и длины, чтобы получить все после этого. –
Я пытаюсь вытащить JSON/массив для поддержки типа. Для типа head требуется плоский JSON/массив для продвижения вперед. Тип, который я использую, это: http://www.runningcoder.org/jquerytypeahead/ – arcee123