Разбор CFDUMP структуры и хранения значений
Как мне разобрать эту структуру? Мне нужно превратить это в отдельные переменные. Например, из структуры атрибутов:
name
type
value
Я не знаком со структурами, и мне нужно ввести этот тип данных в базу данных.
Я играл с cfloop
, но ничего.
3 ответа
Предполагая, что ваша переменная называется "foo", вы можете получить доступ к имени, как это
foo.attributes.name
Структуры просто доступны через точечную запись.
Если вы хотите просто вывести эту структуру, используйте простой XML и сохраните его в поле CLOB или BLOB. Но если вы хотите выполнять такие операции, как поиск, частые изменения данных, то лучше рассмотреть древовидные структуры.
Если вы используете Oracle, взгляните на CONNECT BY PRIOR, это заставляет вас хранить значения в базе данных непосредственно в виде строк, а затем запрашивать их и загружать в древовидную структуру.
Суть в том, что вы оба должны иметь возможность хранить и извлекать данные, как если бы вы имели дело с простой структурой данных TREE.
В соответствии с тем, что сказал Бен, я не уверен, почему вы захотите отделить эту милую небольшую структуру. Используйте его в его текущей форме, получая доступ к значениям внутри него, а не разбирая его.
<cfloop collection="#foo.attributes#" item="myKey">
<cfoutput>Value of #myKey# is #structFind(foo.attributes, myKey)#</cfoutput>
</cfloop>
Обратитесь к странице зацикливания структуры LiveDocs для получения дополнительной информации.