ColdFusion, как преобразовать строку в массив? - PullRequest
3 голосов
/ 20 мая 2010

Учитывая следующую строку в ColdFusion:

ul[0][id]=main1 &ul[0][children][0][id]=child2 &ul[0][children][0][class]= &ul[1][id]=main3 &ul[2][id]=main4 &ul[3][id]=main5 

Как я могу создать массив с информацией выше?

Спасибо

Ответы [ 3 ]

2 голосов
/ 27 мая 2010

при просмотре строки выясняется, что вы пытаетесь преобразовать строку запроса url в массив структур. это то, что мы сделали в cfwheels в нашем диспетчере, и это довольно сложно. чтобы увидеть, как мы это делаем, взгляните на код диспетчера:

http://code.google.com/p/cfwheels/source/browse/trunk/wheels/dispatch/request.cfm

методы, которые нужно посмотреть:

$ CreateParams ()

$ getParameterMap ()

$ createNestedParamStruct ()

$ createNewArrayStruct ()

1 голос
/ 20 мая 2010

Из этой строки не совсем ясно, но я думаю, что вы ищете что-то подобное. Это массив структур структур, после наблюдения, что все ваши «более глубокие» массивы (например, children), похоже, имеют только один элемент (т.е. есть только children[0], значение которого является структурой с ключами id и class, каждое из которых имеет только одно значение).

ul                         = [];
ul[1]                      = {}; // ColdFusion arrays are not zero-indexed
ul[1]['id']                = 'main1';
ul[1]['children']          = {}; // Another struct
ul[1]['children']['id']    = 'child2';
ul[1]['children']['class'] = '';  // blank in your example
ul[2]['id']                = 'main3';
ul[3]['id']                = 'main4';

...etc...

Я предполагаю, что вы как-то анализируете эту закодированную строку, и вы будете создавать циклы и создавать новые элементы массива с каждой итерацией. Есть более компактные способы сделать это.

Но это может породить вопрос: не лучше ли хранить ваши закодированные массивы в стандартном формате, легко кодируемом и декодируемом собственными функциями CFML? Используйте serializeJSON() в вашем массиве, чтобы получить строку, и deserializeJSON(), чтобы превратить строку в массив.

0 голосов
/ 30 июня 2010

Form Utilities cfc звучит так, как вам нужно.

http://formutils.riaforge.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...