JSON (JavaScript Object Notation) は、広く使用されているデータ交換形式です。 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 中国語 Web サイトの他の関連記事を参照してください。