2016-03-12 47 views
-2

我有數組JSON對象是這樣的:如何陣列解碼JSON對象沒有報價指數

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

由於某種原因,我沒有雙引號添加到namesize指數,我想在JSON解碼Laravel 5.1並與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

哪裏是從你的JSON數據? – fusion3k

+0

javascript(angularjs) –

+0

爲什麼這個錯誤格式?它來自你自己的代碼?如果是,你能顯示js代碼嗎?這是因爲是的,它可以解決你的問題在PHP中,但如果你有一個有效的JSON要好得多 – fusion3k

回答

0

json_decode()用於解碼JSON字符串到一個數組/數據對象。

json_encode()從數組或數據創建json字符串。

UPDATE:

錯誤信息明確告知,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
+1

我想解碼'$ json'。我從ajax請求(javascript)獲取'$ json'。 –

+1

問題標題:「如何解碼數組沒有索引引用的JSON對象「 – fusion3k

+0

@Ehsan我更新了答案。 – SkyWalker