从Laravel雄辩的响应格式化JSON

从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

我收到了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 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”}也在单独的对象中