2013-12-12 39 views
0

的第二級我有一個JSON這樣的:如何解析JSON PHP

[{"a":"1", "b":"2"},{"a":"4", "b":"5"},{"a":"15", "b":"2"}] 

我想在PHP獲取每一行進行更新我的數據庫。我不知道二級json的數量是多少。有時會是1,有時是2,有時會更多。

我想,我能讀懂它做這樣的事情:

$json = file_get_contents('php://input'); 
$json_post = json_decode($json, true); 
$i = 0; 

while(isset($json_post[$i])){ 
//Bla bla 
$i++; 
} 

我已經多次使用JSON文件在PHP而且永遠只有一個級別。這是我第一次有不止一次。 但我不能。我知道,因爲我檢查過,在$ json中我有完整的json文件。

回答

4

您需要引用該子項的數組中:

$json = file_get_contents('php://input'); 
$json_post = json_decode($json, true); 
$i = 0; 

while(isset($json_post[$i])){ 
    echo $json_post[$i]["a"]; 
    // or 
    echo $json_post[$i][0]; 
    $i++; 
} 

更多文檔可以在這裏找到:http://php.net/manual/en/language.types.array.php

而類似的問題在這裏:PHP reference specific key and value within multidimensional array

+0

那是。謝謝。我知道它必須是一些愚蠢的東西,但我無法弄清楚。 – Biribu

1

我會使用的foreach:

foreach($json_post as $key => $value) { 
    echo $value; 
} 
1
$j = '[{"a":"1", "b":"2"},{"a":"4", "b":"5"},{"a":"15", "b":"2"}]'; 

$decoded = json_decode($j, true); 
//var_dump($decoded); 


foreach ($decoded as $key => $post) { 
    $valueOfA = $post['a']; 
    $valueOfB = $post['b']; 
}