2016-03-12 2 views
3

Я хочу декодировать массив галереи объектов JSON в Laravel 5.1. мой JSON является:Как декодировать объект JSON в Laravel

{ 
    "title": "aaaaaaaaaaaaaaaa", 
    "category_id": "1", 
    "user_id": "1", 
    "gallery": "[{name: \"XCB808tvXNpqXKqekA2HlkJ8H.jpg\",size:5112},{name: \"s6kA6B0e5m1sdSAjPXqNwtiy4.jpg\", size: 13135}]" 
} 

Когда я использую этот код, верните мне null:

public function store(Request $request) 
    { 
     $json = json_decode($request['gallery'],true); 
     return $json; 
    } 
} 

и это dd($request['gallery']) результат

[{'name': "XCB808tvXNpqXKqekA2HlkJ8H.jpg",'size':5112},{'name': "s6kA6B0e5m1sdSAjPXqNwtiy4.jpg", 'size': 13135}] 
+0

Просьба указать полный код –

+0

'gallery' в не объект JSON, а список объектов JSON, поэтому сначала разделите их - для этого вы можете использовать' explode() '. – mitkosoft

+0

что мне делать взорваться? –

ответ

5

Процесс декодирования является правильным. Я думаю, ваша проблема в том, что у вас может быть некорректная строка JSON.

Заменить одинарные кавычки имен свойств в двойных кавычках:

[{"name": "XCB808tvXNpqXKqekA2HlkJ8H.jpg","size":5112},{"name": "s6kA6B0e5m1sdSAjPXqNwtiy4.jpg", "size": 13135}] 
0

Я не уверен, что о вашем потоке программы, но поскольку вы вводите запрос зависимости от функции store, я предполагаю, что объект JSON является частью вашего запроса. В этом случае вы можете попробовать,

$input = $request->json()->all(); 

Только print_r ($ input) и посмотрите, что вы получаете.

Если объект JSON не является частью вашего запроса, вы пропустили передачу $ json в свою функцию. Однако это дикая догадка!

0

вы можете использовать Response :: JSON ($ значения);

Смежные вопросы