json_encode 文字列と数値
PHP の json_encode 関数を使用すると、数値が文字列としてエンコードされるという問題が発生する場合があります。文字列は数値演算に使用できないため、JavaScript を使用するときに予期しない動作が発生する可能性があります。
問題の理解
たとえば、次のような配列があるとします。 this:
array('id' => 3)
json_encode は次の JSON を出力しますstring:
"{ ["id": "3", ...)
id プロパティが引用符で囲まれており、文字列値を示していることに注意してください。 JavaScript がこの文字列に遭遇すると、それをそのように解釈し、それに対して実行される数値計算は失敗します。
文字列エンコーディングの防止
この問題に対処するには、次のようにします。 json_encode を呼び出すときの JSON_NUMERIC_CHECK フラグ。このフラグは、エンコード前に数値を数値に自動的に変換するように PHP に指示します。
$arr = array( 'row_id' => 1, 'name' => 'George' ); echo json_encode( $arr, JSON_NUMERIC_CHECK );
これは次のように出力します。
{"row_id":1,"name":"George"}
JSON_NUMERIC_CHECK フラグを使用すると、row_id プロパティは本物の数値になります。これにより、JavaScript で問題なく数値演算を実行できるようになります。
以上が「json_encode」が時々数値を文字列として返すのはなぜですか?これを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。