JSON(JavaScript 物件表示法)是一種廣泛使用的資料交換格式。當使用 PHP 的 json_encode 函數將 PHP 陣列或物件轉換為 JSON 時,遇到一個常見問題:數字被編碼為字串。例如,可能需要一個帶有數字鍵 { "id": "3" } 的數組,但 json_encode 會產生 { "id": 3 }。當 JavaScript 將值解釋為字串時,此行為可能會導致差異,從而導致數字運算失敗。
幸運的是,PHP 5.3 及更高版本提供了此問題的解決方案。透過在編碼期間使用 JSON_NUMERIC_CHECK 標誌,可以解決此問題。此標誌會觸發將數值自動轉換為編碼的 JSON 字串中的數字。為了說明這一點,下面的程式碼片段示範如何利用此標誌:
$arr = array( 'row_id' => '1', 'name' => 'George' ); echo json_encode( $arr, JSON_NUMERIC_CHECK ); // {"row_id":1,"name":"George"}
如您所見,數字鍵現在已正確編碼為數字,確保與 JavaScript 中的數字操作相容。這種簡單而有效的方法使開發人員能夠有效地管理編碼過程,並避免 JSON 中數字的不需要的字串轉換,從而增強應用程式的互通性。
以上是為什麼 PHP 的 `json_encode` 會將數字視為字串,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!