使用淘寶 API(特別是 taobao.taobaoke.items.detail.get)時,有時候 json_decode 會回傳 null,導致無法解析資料。經過排查,通常是因為回傳的 JSON 字串中包含回車符(\r\n、\r、\n)或制表符(\t),這些字元可能來自店家描述或商品說明中的不規範輸入。
PHP 的 json_decode 對 JSON 格式要求非常嚴格,任何多餘的控制字元都會導致解析失敗。可在解碼前先將這些字元移除:
$json = str_replace(array("\r\n", "\n", "\r", "\t", chr(9)), "", $json);
$json = json_decode($json, true);
這樣即可將含有特殊空白字元的 JSON 資料正常解碼為陣列。