我有这样的数组JSON对象:
$json = [
{name: "XCB808tvXNpqXKqekA2HlkJ8H.jpg", size: 5112},
{name: "s6kA6B0e5m1sdSAjPXqNwtiy4.jpg", size: 13135}
]
由于某些原因,我没有为name
和size
索引添加双引号,我想在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
答案 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"
}
]
点击链接: