Из этой строки не совсем ясно, но я думаю, что вы ищете что-то подобное. Это массив структур структур, после наблюдения, что все ваши «более глубокие» массивы (например, 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()
, чтобы превратить строку в массив.