PHP は非常に人気のある Web プログラミング言語で、開発速度が速く、構文がシンプルで、拡張性が高いという利点があり、開発者の間で非常に人気があります。 Web 開発では、JSON (JavaScript Object Notation) はクライアントとサーバーの間でデータを転送するために使用される軽量のデータ交換形式です。 PHP では、JSON データ形式を返すことは比較的簡単な作業ですが、実際の開発では、返されたデータ形式が要件を満たしていないなど、いくつかの問題が発生する可能性があります。この記事では、PHP で改行なしの JSON データ形式を返す方法について説明します。
まず、JSON データ形式を返す通常の PHP コードを見てみましょう:
$data = array( 'name' => 'John', 'age' => 30, 'city' => 'New York' ); header('Content-Type: application/json'); echo json_encode($data);
上記のコードは、PHP の組み込み json_encode 関数を使用して、連想配列を JSON 形式に変換します。を指定し、header 関数を使用して応答ヘッダーを設定し、返されるデータ型が JSON であることを指定します。最後に、echo ステートメントを使用して JSON 文字列を出力します。
このコードを実行すると、以下に示すような JSON 文字列が取得されます。
{ "name": "John", "age": 30, "city": "New York" }
ご覧のとおり、JSON 文字列の各キーと値のペアの間に改行文字があり、これは、json_encode 関数がデフォルトで各キーと値のペアの間に改行文字と TAB インデント文字を追加するためです。 JSON 文字列に改行文字とインデント文字を含めたくない場合はどうすればよいでしょうか?
解決策は非常に簡単で、json_encode 関数を呼び出すときに JSON_UNESCAPED_UNICODE と JSON_UNESCAPED_SLASHES という 2 つのパラメータを渡すだけです。 JSON_UNESCAPED_UNICODE は中国語の文字を保持するために使用され、JSON_UNESCAPED_SLASHES はスラッシュのエスケープを避けるために使用されます。変更されたコードは次のとおりです。
$data = array( 'name' => 'John', 'age' => 30, 'city' => 'New York' ); header('Content-Type: application/json'); echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
このコードを再度実行すると、以下に示すような JSON 文字列が取得されます。
{"name":"John","age":30,"city":"New York"}
ご覧のとおり、JSON 文字列内の各キー値は次のようになります。ペア間に改行やインデントはなく、中国語の文字は正しく保持されます。 PHPで改行なしのJSONデータ形式を返す方法です。
もちろん、JSON 文字列に改行文字とインデント文字を含めたい場合は、json_encode 関数を呼び出すときに JSON_PRETTY_PRINT パラメーターを渡すこともできます。 JSON_PRETTY_PRINT は、インデントと改行文字を含む書式設定された JSON 文字列を出力するために使用されます。例:
$data = array( 'name' => 'John', 'age' => 30, 'city' => 'New York' ); header('Content-Type: application/json'); echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
出力結果は次のとおりです:
{ "name": "John", "age": 30, "city": "New York" }
つまり、PHP 開発者にとって、JSON データ形式を返すことは基本的な操作であるだけでなく、さまざまなパラメーターにも注意する必要があります。プロジェクトの特定のニーズを満たすための設定。
以上がPHPで改行なしのJSONデータ形式を返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。