如何在Laravel中解码JSON对象

时间:2016-03-12 09:33:31

标签: php json laravel laravel-5 laravel-5.1

我想在Laravel 5.1中解码图库数组JSON对象。我的JSON是:

{
  "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}]

4 个答案:

答案 0 :(得分:5)

解码过程是正确的。我认为你的问题是你可能有一个格式错误的JSON字符串。

用双引号替换属性名称周围的单引号:

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

答案 1 :(得分:0)

我不太确定您的程序流程,但是当您向存储函数注入Request依赖项时,我假设JSON对象是您请求的一部分。在这种情况下,你可以尝试,

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

只需print_r($ input),看看你得到了什么。

如果JSON对象不是您请求的一部分,那么您错过了将$ json传递给您的函数。不过,这是一个疯狂的猜测!

答案 2 :(得分:0)

你可以使用Response :: json($ value);

答案 3 :(得分:-1)

由于遇到尝试获取json格式的响应(Laravel 8.8.0)的相同问题而被删除。我能够使其正常工作的方法是使用:

$jsonFormattedResult = json_decode ($response->content(), true);

希望它可以帮助某人。 ('-')/