ホームページ >バックエンド開発 >PHPチュートリアル >PHP の「json_encode」が数値を文字列に変換するのはなぜですか?それを修正するにはどうすればよいですか?
JSON エンコードの問題: PHP json_encode 数値を文字列に変換する
PHP の json_encode 関数で、数値が次のようにエンコードされるという問題が発生します。 JSON エンコード プロセス中の文字列。その結果、JavaScript はこれらのエンコードされた文字列に遭遇すると、そのように解釈し、数値演算でエラーが発生します。例:
array('id' => 3)
次のようにエンコードされます:
{ ["id": "3", ...)
JavaScript がこの「id」プロパティにアクセスすると、文字列として解釈され、数値計算でエラーが発生します。
解決策: 文字列を防止するエンコーディング
json_encode が数値を文字列に変換しないようにするための解決策は、PHP バージョン 5.3.3 以降に存在します。
$arr = array( 'row_id' => '1', 'name' => 'George' ); echo json_encode( $arr, JSON_NUMERIC_CHECK );
JSON_NUMERIC_CHECK フラグを指定すると、数値は自動的に変換されます。 JSONエンコード中に数値型に変換されるprocess:
{"row_id":1,"name":"George"}
これにより、JavaScript が値を数値として正しく識別して操作できるようになります。
以上がPHP の「json_encode」が数値を文字列に変換するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。