如何解码没有索引引用的数组JSON对象

时间:2016-03-12 14:56:54

标签: php arrays json laravel decode

我有这样的数组JSON对象:

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

由于某些原因,我没有为namesize索引添加双引号,我想在Laravel 5.1中解码JSON并使用foreach()进行迭代。但是当使用这样的foreach时:

$json = json_decode($json,true);
         foreach ($json as $val) {
            Image::create(['filename' => $val['name'], 'size' => $val['size']]);
         }

并误解我:

json_decode() expects parameter 1 to be string, array given

1 个答案:

答案 0 :(得分:0)

json_decode()用于将json字符串解码为数组/数据对象。

json_encode()从数组或数据创建一个json字符串。

<强>更新

错误消息清楚地告诉You are passing an array to json_decode, but it expects a string.看起来你必须迭代数组:所以这样做。

foreach($arr as $i => $json) {
    $arr[$i] = json_decode($json, true);
}

使用此JSON。希望它能奏效。

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

点击链接:

  1. http://php.net/manual/en/function.json-decode.php
  2. Key value pairs using JSON
  3. http://www.w3schools.com/json/json_syntax.asp