Laravel: Как разобрать данные json в лесу?
В настоящее время это мое мнение
{{ $leads }}
И это вывод
{"error":false,"member":[{"id":"1","firstName":"first","lastName":"last","phoneNumber":"0987654321","email":"[email protected]","owner":{
"id":"10","firstName":"first","lastName":"last"}}]}
Я хотел показать что-то вроде этого
Member ID: 1
Firstname: First
Lastname: Last
Phone: 0987654321
Owner ID: 10
Firstname: First
Lastname: Last
Ответы
Ответ 1
Это довольно легко.
Прежде всего отправьте в декодированную переменную вида (см. Laravel Views):
view('your-view')->with('leads', json_decode($leads, true));
Затем просто используйте общие конструкции лезвий (см. Laravel Templating):
@foreach($leads['member'] as $member)
Member ID: {{ $member['id'] }}
Firstname: {{ $member['firstName'] }}
Lastname: {{ $member['lastName'] }}
Phone: {{ $member['phoneNumber'] }}
Owner ID: {{ $member['owner']['id'] }}
Firstname: {{ $member['owner']['firstName'] }}
Lastname: {{ $member['owner']['lastName'] }}
@endforeach
Ответ 2
Вы можете использовать json decode, тогда вы получите php-массив и используете это значение как свой собственный способ.
<?php
$leads = json_decode($leads, true);
dd($leads);
Ответ 3
в контроллере просто конвертировать данные json в объект, используя функцию json_decode php, такую как
$member = json_decode($json_string);
and pass to view in view
return view('page',compact('$member'))
в поле зрения
Member ID: {{$member->member[0]->id}}
Firstname: {{$member->member[0]->firstname}}
Lastname: {{$member->member[0]->lastname}}
Phone: {{$member->member[0]->phone}}
Owner ID: {{$member->owner[0]->id}}
Firstname: {{$member->owner[0]->firstname}}
Lastname: {{$member->owner[0]->lastname}}
Ответ 4
Ловушка для меня берет объект, кодирует его, а затем передает строку в тег javascript script
. Для этого вам нужно сделать некоторые замены.
Сначала замените каждый \
двойной косой чертой \\
, а затем каждую цитату "
с помощью \"
.
$payload = json_encode($payload);
$payload = preg_replace("_\\\_", "\\\\\\", $payload);
$payload = preg_replace("/\"/", "\\\"", $payload);
return View::make('pages.javascript')
->with('payload', $payload)
Затем в шаблоне клинка
@if(isset($payload))
<script>
window.__payload = JSON.parse("{!!$payload!!}");
</script>
@endif
Это в основном позволяет вам взять объект на стороне php, а затем иметь объект на стороне javascript.