JQtree JSON данные с PHP и MySQL

Как сгенерировать ответ json на jqtree с помощью php? Я пытался с json_encode, но он оставляет много дополнительных данных. Мне было интересно, если кто-то уже взломал эту дверь.

Как добиться такой структуры:

var data = [
    {
        label: 'node1',
        children: [
            { label: 'child1' },
            { label: 'child2' }
        ]
    },
    {
        label: 'node2',
        children: [
        { label: 'child3' }
        ]
    }
];

Форма MySQL ID, родитель, структура метки?

Любая помощь будет оценена

1 ответ

"Дополнительные данные" в строке json связаны с json_encode и ассоциативным массивом. Если вы попытаетесь использовать json_encode и индексированный массив, вы получите совершенно другую строку json без этих "меток".

Однако jqtree нужен смешанный json с некоторыми "строковыми" ключами и некоторыми "индексными" ключами.

Затем, чтобы получить действительный json для jqtree в PHP, вы должны использовать следующую функцию для вашего результирующего массива из запроса, а после выполнения json_encode для массива эта функция возвращает:

    function arrayValuesRecursive($array)
    {
        $temp = array();
        foreach ($array as $key => $value) {
            if (is_numeric($key)) {
                $temp[] = is_array($value) ? arrayValuesRecursive($value) : $value;
            } else {
                $temp[$key] = is_array($value) ? arrayValuesRecursive($value) : $value;
            }
        }

        return $temp;
    }

Например:

$arrayFromQuery = array(...);
$arrayFromQuery = arrayValuesRecursive($arrayFromQuery);
$jqTreeJSON = json_encode($arrayFromQuery);
Другие вопросы по тегам