从Laravel雄辩的响应格式化JSON
我收到了Elount的回复,我需要将其格式完全如下所示:从Laravel雄辩的响应格式化JSON,json,laravel-5,eloquent,Json,Laravel 5,Eloquent,我收到了Elount的回复,我需要将其格式完全如下所示: { name: "James", data: { "2017-01-01 00:00:00": 300, "2017-01-02 00:00:00": 600, } }, 我目前得到的答复是: { name: "James", date: "2017-01-01 00:00:00", amount: "300" }, { name: "James", date: "2017-01-02
{
name: "James",
data: {
"2017-01-01 00:00:00": 300,
"2017-01-02 00:00:00": 600,
}
},
我目前得到的答复是:
{
name: "James",
date: "2017-01-01 00:00:00",
amount: "300"
},
{
name: "James",
date: "2017-01-02 00:00:00",
amount: "600"
},
我已将其绑定,但格式不正确:
$chartData = [];
foreach($charts as $chart){
array_push($chartData, [
'name' => $chart->name,
'data' => json_encode([$chart->date. ':' .$chart->amount], true)
]);
}
结果是:
{
name: "James",
data: "{"2017-01-01T00:00:00.000000Z":"300"}"
},
{
name: "James",
data: "{"2017-01-02T00:00:00.000000Z":"600"}"
},
谢谢您可以这样做: $chartData=[]
foreach($charts as $chart){
array_push($chartData, [
'name' => $chart->name,
'data' => $chart->date. ':' .$chart->amount
]);
}
json_编码($chartData) 这必须通过两个步骤完成:
function normalizeChartData($charts){
$chartData = [];
//1) grab dates and amounts for each name.
foreach($charts as $chart)
foreach($chart->data as $data){
if(isset($chartData[$chart->name]) && is_array($chartData[$chart->name]))
$chartData[$chart->name][$data->date] = $data->amount;
else
$chartData[$chart->name] = [$data->date => $data->amount];
}
//2) format it to look as you want.
$enhancedChartData = [];
foreach($chartData as $name => $date_amount){
$temp = [
'name' => $name,
'data' => []
];
foreach($date_amount as $da)
$temp['data'][] = $da;
$enhancedChartData[] = $temp;
}
return $enhancedChartData;
}
返回-data:“2019-12-03 00:00:00:1000”,我需要-data:{“2019-12-03 00:00:00:1000”}也在单独的对象中