ng-google-charts
。bar-chart
(请参阅此处)模块接受以下格式的数据:
var chartData =
[
{
"c": [ // First bar
{ "v": "Thing A" }, // c_name
{ "v": 6 }, // # of c_assigned - c_completed
{ "v": "red"}, // color of a portion of bar
{ "v": 28 }, // # of c_completed
{ "v": "green"} // color of a portion of bar
]
},
{
"c": [ // Second bar
{ "v": "Thing B" },
{ "v": 4 },
{ "v": "red"},
{ "v": 30 },
{ "v": "green"}
]
},
{
"c": [ // Third bar
{ "v": "Thing C" },
{ "v": 12 },
{ "v": "red"},
{ "v": 21 },
{ "v": "green"}
]
}
];
我的PHP的print_r($data)
是:
Array
(
[0] => Array
(
[c_name] => Thing A
[c_assigned] => 34
[c_completed] => 28
)
[1] => Array
(
[c_name] => Thing B
[c_assigned] => 34
[c_completed] => 30
)
[2] => Array
(
[c_name] => Thing C
[c_assigned] => 33
[c_completed] => 21
)
)
现在json_encode($data)
的结果是:
[
{
"c_name":"Thing A",
"c_assigned":"34",
"c_completed":"28"
},
{
"c_name":"Thign B",
"c_assigned":"34",
"c_completed":"30"
},
{
"c_name":"Thing C",
"c_assigned":"33",
"c_completed":"21"
}
]
json_encode($data, JSON_FORCE_OBJECT)
是这样的:
{
"0":
{
"c_name":"Thing A",
"c_assigned":"34",
"c_completed":"28"
},
"1":
{
"c_name":"Thign B",
"c_assigned":"34",
"c_completed":"30"
},
"2":
{
"c_name":"Thing C",
"c_assigned":"33",
"c_completed":"21"
}
}
我使用$http
获取数据:
function getThings(a,b){
$http({
method: "POST",
data: $.param({a:a,b:b}),
url: BASE_URL+"Conroller/Function",
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data){
$scope.things = data;
});
}
我对JSON很陌生。如何使php中的数据成为模块所需的格式?
您可以如下更改$data:
$data = array_map(function ($el) {
return array(
"c" => array(
array("v" => $el['c_name']),
array("v" => $el['c_assigned']),
array("v" => 'red'),
array("v" => $el['c_completed']),
array("v" => 'green'),
)
);
}, $data);
然后,生成如下JSON:
$json = json_encode($data, JSON_PRETTY_PRINT);
这将具有如下价值:
[
{
"c": [
{
"v": "Thing A"
},
{
"v": 34
},
{
"v": "red"
},
{
"v": 28
},
{
"v": "green"
}
]
},
{
"c": [
{
"v": "Thing B"
},
{
"v": 34
},
{
"v": "red"
},
{
"v": 30
},
{
"v": "green"
}
]
},
{
"c": [
{
"v": "Thing C"
},
{
"v": 33
},
{
"v": "red"
},
{
"v": 21
},
{
"v": "green"
}
]
}
]
中的评估演示