2012-06-05 79 views
0

使用javascript或php,我如何從網頁獲取值?這是我試圖解析JSON:解析來自JSON網頁的值

{ 「錯誤」: 「」], 「templateHtml」: 「」, 「_visitor_conversationsUnread」: 「0」, 「_ visitor_alertsUnread」: 「0」}

我想獲得「_visitor_alertsUnread」的值。 我會如何去做這件事?

謝謝!

回答

1

您可以使用正則表達式,使用json解碼或簡單索引來解析它。然而,在這三者中,json是最乾淨和最正確的方法。

1)JSON解碼:

$page = file_get_contents($url); 
$json_arr = json_decode($string,true); 
return $json_arr['_visitor_alertsUnread']; 

2)正則表達式:

$page = file_get_contents($url); 
$pattern = ".*?_visitor_alertsUnread\\\":\\\"(\\d)\\\""; 
preg_match($pattern, $page, $matches); 
return $matches[1]; 

3)索引:

$page = file_get_contents($url); 
$needle = "_visitor_alertsUnread"; 
$startpos = strrpos($page, $needle) + strlen($needle) + 3; 
$endpos = strrpos($page, "\"", $startpos); 
return substr($page, $startpos, $endpos); 
+0

關於第二aprach。當你已經知道密鑰時,迭代JSON對象是個好主意嗎? –

+1

好點;就CPU使用率而言,我假設通過密鑰訪問會更有效率。現在編輯。 – Vulcan

+1

Yuck,**請不要鼓勵沒有經驗的用戶使用正則表達式來解析顯然是格式良好的JSON!使用正確的工具,'json_decode()'應該是第一個答案。 –

0

響應使用JSON。

如果你只是想獲得_visitor_alertsUnread的價值,那麼你可以做這樣的事情。

var JSONObj = {"error":["Security error occurred. Please press back, refresh the page, and try again."],"templateHtml":"\n\n\n\n\t</a>\n\t\n\t\tThe following error occurred:</h2>\n\t\t\n\t\t\n\t\t\n\t\t\tSecurity error occurred. Please press back, refresh the page, and try again.</label>\n\t\t\n\t\t</div>\n\t\n</div>","_visitor_conversationsUnread":"0","_visitor_alertsUnread":"0"}; 

alert(JSONObj._visitor_alertsUnread);