2017-06-13 132 views
0

我想從這個JSON格式中獲取數據以便能夠在屏幕上顯示問題是我不知道如何才能做到這一點,因爲我已經嘗試了多種方式,如:在PHP中從JSON獲取數據

$stats = json_decode($result); 
// var_dump($stats); 
echo $stats->elo; 

,並沒有什麼工作我不能確定如何將數據獲取,由於[],因爲我從來沒有與此工作過。如下所示是我需要的一小部分數據。

[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}] 

在此先感謝

+0

您必須使用foreach從該數組中獲取該值 –

+1

以其最基本的形式 - '$ stats [0] - > elo;'。 – Tom

+3

[用PHP解析JSON文件]可能重複(https://stackoverflow.com/a/4343691/6521116) –

回答

0

如果我理解正確的話你不知道你(你想在陣列來獲得數據?), 但嘗試

$stats = json_decode($result,true); 
var_dump($stats); 
1

有一個簡單的規則處理JSON時大拇指。首先只是對其進行解碼並使用print_r()所以你可以看到它的結構,它打印輕鬆

$s = '[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]'; 

$stats = json_decode($s); 

print_r($stats); 

,它會顯示你在這種情況下

Array 
(
    [0] => stdClass Object 
     (
      [_id] => stdClass Object 
       (
        [championId] => 51 
        [role] => DUO_CARRY 
       ) 
      [elo] => BRONZE 
      [patch] => 7.11 
      [championId] => 51 
      [positions] => stdClass Object 
       (
        [deaths] => 3 
        [winRates] => 6 
        [minionsKilled] => 2 
        [previousOverallPerformanceScore] => 6 
       ) 
     ) 
) 

所以,現在你知道有包含在這種情況下,一個數組只有一個對象

所以顯示elo,你可以做一個簡單的

echo $stats[0]->elo; // BRONZE 

但因爲它是對象的數組,可能是更好的假設在某些情況下會出現一個以上的統計,所以你可以處理它在foreach循環中這樣

foreach ($stats as $stat) { 
    echo $stat->elo; 
} 
1

如果你得到一個以上的在JSON使用的foreach陣列數據如下

foreach ($stats as $row) { 
    echo $row->elo; 
} 

,如果你想只得到第一個記錄,然後使用$stats[0]->elo;

0

你json_decode的輸出對象的數組。所以,你必須使用索引來首次訪問數組元素,然後用$array[0]->eloLive demo.

$string = '[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]'; 
print_r(json_decode($string)[0]->elo); 
0

訪問對象的屬性。如果你想獲得關聯數組,你應該使用$stats = json_decode($result, true); var_dump($stats);,你會得到

array (size=1) 
    0 => 
    array (size=5) 
     '_id' => 
     array (size=2) 
      'championId' => int 51 
      'role' => string 'DUO_CARRY' (length=9) 
     'elo' => string 'BRONZE' (length=6) 
     'patch' => string '7.11' (length=4) 
     'championId' => int 51 
     'positions' => 
     array (size=4) 
      'deaths' => int 3 
      'winRates' => int 6 
      'minionsKilled' => int 2 
      'previousOverallPerformanceScore' => int 6 

獲取元素得到$stats[0]或循環的第一個數組的鍵。防爆。 $stats[0]['elo']