0

我在将字符串编码为 json 时遇到问题。我正在做一个谷歌饼图。图表将填充数据库中的数据。谷歌图表需要 json 格式的数据。

下面是一个字符串的示例,它应该是什么样子。现在我遇到了用数据库中的数据动态“组装”字符串的问题。JSON_encode 是不够的,它的格式必须像这个带有 cols 和 rows 的字符串!请帮忙。

<?php 

 $db=new DB();
 $db->connect();
 $db->selectBase();

 $rows = array();
 $sth=$db->st_glede_na_tip() or die(mysql_error());
 while($r = mysql_fetch_assoc($sth)) {
     $rows[] = $r;
}


 $string= '{
     "cols": [
        {"id":"","label":"Content","pattern":"","type":"string"},
        {"id":"","label":"Slices","pattern":"","type":"number"}
       ],
    "rows": [
        {"c":[{"v":"Books"},{"v":3}]},
        {"c":[{"v":"Video"},{"v":1}]},
        {"c":[{"v":"Audio"},{"v":1}]},
        {"c":[{"v":"Movie"},{"v":1}]},
      ]
   }';

   echo $string;


 ?>
4

1 回答 1

5

我猜你的问题是不知道如何从 PHP 对象生成这样的 JS 对象。您需要这样创建一个 PHP 数组,然后使用 json_encode 函数:

$data = array(
    'cols' => array(
        array('id' => '', 'label' => 'Content', 'pattern' => '', 'type' => 'string'),
        array('id' => '', 'label' => 'Slices', 'pattern' => '', 'type' => 'number')     
    ),
    'rows' => array(
        array('c' => array(
            array('v' => 'Books'),
            array('v' => 3)         
        )), 
        array('c' => array(
            array('v' => 'Video'),
            array('v' => 1)         
        )),     
        array('c' => array(
            array('v' => 'Audio'),
            array('v' => 1)         
        )),     
        array('c' => array(
            array('v' => 'Movie'),
            array('v' => 1)         
        ))      
    )   
);  

echo json_encode($data);
于 2012-07-16T08:17:37.983 回答