2014-04-08 17 views
-1

下面是一個例子(我確實改變了值)我是從一個API獲取JSON數據:PHP:JSON數據從一個API

{"status":"OK","data":{"trends":{"uv":[{"date":"201303","value":1},{"date":"201304","value":2},{"date":"201305","value":31},{"date":"201306","value":4},{"date":"201307","value":4},{"date":"201308","value":9},{"date":"201309","value":12},{"date":"201310","value":43},{"date":"201311","value":14},{"date":"201312","value":73},{"date":"201401","value":78},{"date":"201402","value":65},{"date":"201403","value":52}]},"trends_low_sample":false,"query_cost":13,"trends_frequency":"monthly"}} 

會如何在data.trends訪問值.uv [number_the_array] .date在PHP中?

這裏的一些東西,我和周圍的發揮:

$data1 = file_get_contents('/home/strj500/Downloads/result.html'); 
//echo $data1; 

$theData = json_encode($data1); 

//$data1 = preg_replace('/,\s*([\]}])/m', '$1', utf8_encode($data1)); 

//$data1 = utf8_encode($data1); 

$result1 = json_decode($theData); 

echo $result1->status; 

//var_dump($result1); 

//echo json_last_error(); 

//echo error_log(); 

//echo error_reporting(E_ALL); 

/*foreach ($result1->data->trends->rank as $rank 
{ 
    echo "{$rank->date}\n"; 
}*/ 

//echo $result1["data"]["trends"]["uv"]; 

也許另一個問題,與此一起去,如果我想要訪問後在PHP JSON,什麼是存儲它的最佳文件格式在? (JSON,TXT,HTML)?如果它有幫助,我也將在mysql上傳遞這個json數據。

+0

可以在.js文件格式的JSON存儲 - 因爲那麼你可以通過java閱讀腳本(以及其他語言)。您也可以將其存儲爲mysql(當然,使用mysqli_escape_string轉義它之後。) –

回答

0

環路這樣..

<?php 
$json='{"status":"OK","data":{"trends":{"uv":[{"date":"201303","value":1},{"date":"201304","value":2},{"date":"201305","value":31},{"date":"201306","value":4},{"date":"201307","value":4},{"date":"201308","value":9},{"date":"201309","value":12},{"date":"201310","value":43},{"date":"201311","value":14},{"date":"201312","value":73},{"date":"201401","value":78},{"date":"201402","value":65},{"date":"201403","value":52}]},"trends_low_sample":false,"query_cost":13,"trends_frequency":"monthly"}}'; 
$yourobj=json_decode($json); 
foreach($yourobj->data->trends->uv as $k=>$arr) 
{ 
    echo $arr->date."<br>"; 
} 

OUTPUT:

201303 
201304 
201305 
201306 
201307 
201308 
201309 
201310 
201311 
201312 
201401 
201402 
201403 

Demo

0

通過使用json_decode()與作爲真實的第二個參數:

$result1 = json_decode($theData,true); 

您將能夠以普通數組的形式訪問所有元素。如果你想獲取例如在一些特定的數據,你可以做到這一點作爲這樣(在這個例子中,我們希望該指數0):

$result1['data']['trends']['uv'][0];