doutongfu9484 2017-10-27 12:43
浏览 71
已采纳

如何正确格式化JSON Laravel 5.5

i'm trying to load events into a calendar.

Therefore i need to make a JSONstring with the event data but i can't figure out how to do this.

how i create the data:

$tickets = Ticket::where('mechanic_id', $request->mechanic_id)->get();

$tickets_json[] = [];

foreach($tickets as $ticket) {
    $tickets_json['title'] = $ticket->number;
    $tickets_json['start'] = $ticket->planned_timestamp_start->format('d-m-Y H:i');
    $tickets_json['end'] = $ticket->planned_timestamp_end->format('d-m-Y H:i');
    $tickets_json['url'] = '/tickets/' . $ticket->id;
}

This returns:

array:5 [▼
  0 => []
  "title" => "452"
  "start" => "27-10-2017 09:00"
  "end" => "27-10-2017 12:00"
  "url" => "/tickets/2"
]

This is not what i want and need.

I need it like this :

{
title: '63782136',
start: '27-10-2017 09:00',
end: '"27-10-2017 12:00"',
url: '/tickets/2'
},  
{
title: '23123',
start: '27-10-2017 09:00',
end: '"27-10-2017 12:00"',
url: '/tickets/3'
},  
{
title: '432512',
start: '27-10-2017 09:00',
end: '"27-10-2017 12:00"',
url: '/tickets/4'
},  

I have tried:

return response()->json($tickets_json);

But doesn't return the correct format:

#data: "{"0":[],"title":"452","start":"27-10-2017 09:00","end":"27-10-2017 12:00","url":"\/tickets\/2"}"

It adds {"0":[],} .

Thanks in advance.

  • 写回答

1条回答 默认 最新

  • doucitao2944 2017-10-27 12:47
    关注

    You're making the mistake of assigning your data to the first dimension of the array when you want it in the second dimension. The following should do the trick:

    $tickets_json = [];
    
    $tickets->each(function ($ticket) use (&$tickets_json) {
        $tickets_json[] = [
            'title' => $ticket->numer,
            'start' => $ticket->planned_timestamp_start->format('d-m-Y H:i'),
            'end' => $ticket->planned_timestamp_end->format('d-m-Y H:i'),
            'url' => '/tickets/' . $ticket->id
        ];
    });
    
    return $tickets_json;
    

    This code will give you a proper formatted array which you can use to get the following JSON output:

    [
        {
            "title": "63782136",
            "start": "27-10-2017 09:00",
            "end": "27-10-2017 12:00",
            "url": "/tickets/2"
        },  
        {
            "title": "23123",
            "start": "27-10-2017 09:00",
            "end": "27-10-2017 12:00",
            "url": "/tickets/3"
        }
    ]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?