2013-07-13 36 views
2

我的腳本測試以查看數組元素是否包含json。所有工作都很好,直到我得到包含由數字組成的字符串(郵政編碼)的數組元素。這是發生了什麼:Json_decode錯誤地認爲數字字符串是json

$s = '70115'; 
if (json_decode($s)){ 
    echo 'this is json'; 
} else { 
    echo 'this is not json'; 
} 
//result: 'this is json' 
//expected result: 'this is not json' 

我試着明確地將$ s作爲字符串轉換並編碼爲UTF8,但沒有運氣。

任何想法爲什麼會發生這種情況?

+0

AFAIK這是有效的json。 – Maerlyn

+2

http://json.org/ –

+0

然後我必須錯過關於json的一些東西。所以任何數字集合都是有效的json,但是如果我輸入字母字符(比如說$ s ='Chicago';),那不是? – Judson

回答

2

它是有效的JSON。

您可能要檢查,如果你有一個對象實際上:

$s = '70115'; 

if (is_object(json_decode($s))){ 
    echo 'this is json'; 
} else { 
    echo 'this is not json'; 
}