2010-04-15 129 views
1

我正在使用spacetree chart,我需要分層格式的JSON。請參閱示例所需的JSON格式here。我在Mysql數據庫表中有ID,ParentID,Name,Description字段。現在我怎樣才能使用PHP轉換分層/嵌套JSON中的數據? 我知道json_encode($ array)。但是,我需要嵌套/分層php數組。 讓我知道這樣做。從MySQL/PHP獲取嵌套/分層JSON

回答

1

你基本上問兩個問題在這裏 - 1)如何從數據庫表和2得到的分層結構的PHP )如何在json中編碼這個結構。對於第一個問題,請參閱,例如,我的(舊的但工作)code。對於第二個,我相信簡單的json_encode將工作得很好。

+0

謝謝@stereofrog。你非常接近我的對象。編碼的格式與所需的json不同。我不需要parent_ID,並且一些額外的東西即將到來。 – Brij 2010-04-16 05:57:20

0

如果您的服務器上安裝了PHP json擴展,請在數組上使用它。這些步驟將是:以多層次

  1. 構建PHP陣列基於MySQL的resutls
  2. 調用json_encode($陣列)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; 
} 
+0

該解決方案是一個簡單的概念驗證,必須加以改進。例如,添加是對象類型支持和一些錯誤句柄。無論如何,最好使用json_encode。 – 2010-04-15 09:32:59

+0

對不起,還有一件事。如果您要發送json,請記住您應該設置適當的標題作爲迴應。像:header('Content-type:application/json'); – 2010-04-15 09:34:45

+0

現在我的問題是如何創建嵌套/分層php數組? – Brij 2010-04-15 09:35:46