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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀