包装在var中的json数据格式

时间:2019-04-07 16:03:38

标签: php json

我有一个使用以下php代码生成的json数据

$index = array();
foreach($rows as $row)
{
        $row['data'] []= (object) [];
        $index[$row['cat_id']] = $row;
}

// build the tree
foreach($index as $id => &$row)
{
        if ($id === 0) continue;
        $parent = $row['parent'];
        $index [$parent]['children'][] = &$row;
}
unset($row);

// obtain root node
$index = $index[0]['children'][0];

$json_data = json_encode($index, JSON_PRETTY_PRINT);

产生以下json

{
    "cat_id": "1",
    "id": "RT",
    "name": "root",
    "parent": "0",
    "url": "www.test.com",
    "data": [
        {}
    ],

            "children": [
                {
                    "cat_id": "4",
                    "id": "CI.001",
                    "name": "Test2",
                    "parent": "2",
                    "url": "www.test.com",
                    "data": [
                        {}
                    ]
                }

我想要的是这样的输出

var something = [{
        "cat_id": "1",
        "id": "RT",
        "name": "root",
        "parent": "0",
        "url": "www.test.com",
        "data": [
            {}
        ],

                "children": [
                    {
                        "cat_id": "4",
                        "id": "CI.001",
                        "name": "Test2",
                        "parent": "2",
                        "url": "www.test.com",
                        "data": [
                            {}
                        ]
                    }];

我在网上浏览了一些建议,它不是json,而是php数组,我是json的新手。我该如何解决?

1 个答案:

答案 0 :(得分:1)

这是我目前的解决方法。

ob_start();
echo "var javascript_array = [". $json_data . "];\n";
$content = ob_get_contents();
file_put_contents('../core/json/tree.js', $content);

任何建议和改进将不胜感激。