2014-11-06 55 views
-1

當使用json_decode我得到意想不到的字符串字段。 我的JSON文件是:json_decode在PHP回報意想不到的形式

{ 
buyer_accepts_marketing: false, 
cart_token: "eeafa272cebfd4b22385bc4b645e762c", 
id: 327474488104976400, 
} 

和我相關的PHP代碼是

$info = json_decode($file,true); 
print $info["id"]; 
echo "<br>"; 
print $info["cart_token"]; 

我得到的輸出是

3.2747448810498E + 17

eeafa272cebfd4b22385bc4b645e762c

爲什麼我沒有得到ID的正確的價值?

+0

這是從價值來DB,我的意思是一個服務將這一數據? – MixedVeg 2014-11-06 04:53:46

+0

準確地說,json文件是由shopify webhook生成的。 – 73ey 2014-11-06 04:56:19

+0

id:「327474488104976400」。只需更改文件。 – jewelnguyen8 2014-11-06 04:58:56

回答

0

它的發生是因爲id值超出了範圍。嘗試將其創建爲字符串。如果它更改爲字符串,那麼它將正常工作。

Integer overflow

If PHP encounters a number beyond the bounds of the integer type, it will be interpreted as a float instead. Also, an operation which results in a number beyond the bounds of the integer type will return a float instead. 
+0

Tkz .. preg_replace是最好的解決方案。 – 73ey 2014-11-06 05:24:18