Получите вложенный / иерархический JSON из MySQL / PHP - PullRequest
1 голос
/ 15 апреля 2010

Я использую диаграмму космического дерева , и мне требуется JSON в иерархическом формате. Смотрите образец необходимого формата JSON здесь . У меня есть поля ID, ParentID, Name, Description в таблице базы данных Mysql. Теперь, как я могу преобразовать данные в иерархическом / вложенном JSON, используя PHP? Я знаю json_encode ($ массив). Но для этого мне нужен вложенный / иерархический массив php. Дайте мне знать, чтобы сделать это.

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Здесь вы задаете два вопроса: 1) как получить иерархическую структуру php из таблицы db и 2) как кодировать эту структуру в json. По первому вопросу см., Например, мой (старый, но рабочий) код . Во-вторых, я считаю, что простой json_encode будет работать очень хорошо.

0 голосов
/ 15 апреля 2010

Если на вашем сервере установлено расширение PHP json, просто используйте его в массиве. Шаги будут:

  1. Создание массива PHP с иерархией на основе результатов mysql
  2. вызов json_encode ($ array) http://pl.php.net/manual/en/function.json-encode.php

Если на вашем сервере не включен json_encode и вы не можете его установить ... Вам просто нужно написать его вручную.

Это будет что-то подобное (предупреждение о непроверенном коде) :

function my_json_encode($array)
{
  $return = '{';
  $count = count($array);
  $i = 0;
  foreach ($array as $key => $val)
  {
    $return .= '"'.$key.'" : ';
    if (!is_array($val))
      $return .= '"'.$val.'"';
    else
      $return .= my_json_encode($val);
    if ($i < $count-1)
      $return .=",";
    $i++;
  }
  $return .= '}';
  return $return;
}
...