php json_encode自定义键

时间:2014-11-16 16:51:57

标签: php json

我使用PHP创建JSON字符串来表示目录结构,然后将其呈现为树视图,使用的树视图控件需要为每个目录/文件名添加“text”键,并使用“nodes”键每个子目录/文件,所以我使用下面的代码创建一个带有子数组的数组然后使用json_encode将数组转换为JSON格式,那么json_encode可以格式化输出以获得所需的键“text / nodes”吗?

这是使用

的代码
echo json_encode(ReadFolderDirectory('some directory'));
function ReadFolderDirectory($dir,$listDir= array())
{
$listDir = array();
if($handler = opendir($dir))
{
    while (($sub = readdir($handler)) !== FALSE)
    {
        if ($sub != "." && $sub != ".." && $sub != "Thumb.db")
        {
            if(is_file($dir."/".$sub))
            {
                $listDir[] = $sub;
            }elseif(is_dir($dir."/".$sub))
            {
                $listDir[$sub] = ReadFolderDirectory($dir."/".$sub); 
            } 
        } 
    }    
    closedir($handler); 
} 
return $listDir;    
}

我正在使用的控件在这里,JSON数据应该与他们的数据结构部分一样:https://github.com/jonmiles/bootstrap-treeview#data-structure

1 个答案:

答案 0 :(得分:0)

echo json_encode(ReadFolderDirectory('some directory'));
function ReadFolderDirectory($dir,$listDir= array())
{
$listDir = array();
if($handler = opendir($dir))
{
    while (($sub = readdir($handler)) !== FALSE)
    {
        if ($sub != "." && $sub != ".." && $sub != "Thumb.db")
        {
            $obj = new stdClass();
            $obj->text = $sub;
            if(is_dir($dir."/".$sub))
            {
                $obj->nodes = ReadFolderDirectory($dir."/".$sub);
            } 
            $listDir[] = $obj;
        } 
    }    
    closedir($handler); 
} 
return $listDir;    
}