代码之家  ›  专栏  ›  技术社区  ›  Brij

从mysql/php获取嵌套/分层的json

  •  1
  • Brij  · 技术社区  · 14 年前

    我正在使用 spacetree chart 我需要层次结构格式的JSON。参见示例所需的JSON格式 here . 我在mysql数据库表中有id、parentid、name、description字段。现在,如何使用PHP转换分层/嵌套JSON中的数据? 我知道json_编码($array)。但是,我需要嵌套/分层的PHP数组。 让我知道怎么做。

    2 回复  |  直到 14 年前
        1
  •  1
  •   user187291    14 年前

    您在这里基本上要问两个问题:1)如何从DB表中获得层次结构的PHP结构;2)如何在JSON中编码这个结构。对于第一个问题,请参见,例如,我的(旧的,但工作的) code . 第二,我相信简单的JSON U编码可以很好地工作。

        2
  •  0
  •   Tomasz Struczyński    14 年前

    如果您的服务器上安装了php-json扩展,只需在数组中使用它。步骤如下:

    1. 基于mysql results构建层次结构的php数组
    2. 调用json_encode($array) http://pl.php.net/manual/en/function.json-encode.php

    如果您的服务器上没有启用JSON U编码,并且无法安装它…你只需要用手写就行了。

    会是那样的 (未测试代码警告) :

    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;
    }