2013-05-01 23 views
0

我們獲取每日下載的JSON文件格式的Feed。從那裏開始解析JSON文件。然而,我想讓這個過程更健壯,並且在它繼續之前檢查它以確保下載的文件確實是JSON格式。由於諸如數據傳輸問題或有人將錯誤文件放在那裏供我們下載等原因,它可能不是JSON格式。無論哪種方式,我希望能夠在繼續解析腳本之前檢查該文件並驗證其是否爲JSON文件格式。PHP:JSON文件格式檢查器在PHP中?

是否有PHP方法來驗證文件是否爲JSON格式?謝謝!

會這樣嗎?

// Returns True if JSON data is good, false if bad. 
function isJson($string) { 
json_decode($string); 
return (json_last_error() == JSON_ERROR_NONE); 
} 

// invalid JSON data 
$json = 'blablabla{"user_id":14,"username":"flow"}]foobar'; 
if(isJson($json)) 
{ 
     echo "good" . "\n"; 
     } 
else { 
     echo "bad" . "\n"; 
} 

回答

5

json_decode已經驗證輸入:如果它是無效的,則返回null

在要無效的輸入和"null"(即null JSON表示)之間的區別,您可以手動執行額外的檢查,在偶然的情況下:

if(stricmp(trim($input), "null") == 0) { 
    // $input is a json representation of null 
} 
+0

+1打我到相同的答案:) – fullybaked 2013-05-01 10:42:14

+0

我明白了。我是否也可以檢查json_decode($ string)是否爲false? – Edward 2013-05-01 11:02:00

+0

@愛德華:檢查究竟如何以及爲了什麼目的?您是否閱讀過功能文檔? – Jon 2013-05-01 11:03:53