我在CodeIgniter网站上使用了gapi类。我正在使用这个实现:
http://jjc.net/2011/google-analytics-api-for-codeigniter/
这将返回一个完美运行的数组。我想将它传递给我的js,我这样做:
$gapi_arr = array();
$gapi_arr = $this->gapi->requestReportData($report_id, array('date'), array('pageviews', 'visits', 'newVisits'), 'date', '', $start_date, $end_date, 1, 366);
echo json_encode($gapi_arr);
但是这会返回:
[{},{},{},{},{}...
gapi类返回的原始数组如下所示:
Array
(
[0] => gapiReportEntry Object
(
[metrics:gapiReportEntry:private] => Array
(
[pageviews] => 3
[visits] => 3
[newVisits] => 0
)
[dimensions:gapiReportEntry:private] => Array
(
[date] => 20110101
)
)
[1] => ...
我只是想将这个数组传递给我的js而不在我的视图中编写内联js代码。是否有修复或其他方法来实现这一目标?
答案 0 :(得分:2)
json_encode()可以很好地处理对象,但是,gapiReportEntry对象中的所有属性都是私有,而json_encode()只显示 public 属性
这解释了json数组中的所有空对象{}
。
答案 1 :(得分:1)
在gapi.php中更改PRIVATE by PUBLIC
class gapiReportEntry
{
public $metrics = array();
public $dimensions = array();
....
完成!
答案 2 :(得分:0)
json_encode知道如何处理灵长类动物,数字索引数组和关联数组。这不是上述情况。
答案 3 :(得分:-1)
给定的数组根本不是数组,请查看“gapiReportEntry”,这是一个Object。你应该首先遍历所有并转换为原语。