PHP 配列を JSON データに変換するプロセスで、JSON 文字列に二重引用符が含まれる状況が発生することがあります。この状況は実際の開発では非常に一般的であり、解決策は非常に簡単です。
通常、PHP 配列を JSON 文字列に変換するには、PHP 組み込み関数 json_encode()
を使用して完了します。この関数は、PHP 配列を JSON 文字列に変換します。たとえば、次のコードは、データを含む PHP 配列を JSON 文字列に変換します:
$data = array( 'name' => 'John', 'age' => 30, 'gender' => 'male' ); $json_str = json_encode($data); echo $json_str;
このコードの出力は次のとおりです:
{"name":"John","age":30,"gender":"male"}
上記のコードでは、Convert the PHP を含む文字列が含まれています。 3 つのフィールド値 name
、age
、gender
の配列を JSON 文字列に変換します。
ただし、PHP 配列の値自体に二重引用符が含まれている場合があり、json_encode()
関数を使用してそれを JSON 文字列に変換するときに問題が発生します。
たとえば、次の PHP 配列には二重引用符で囲まれた値が含まれています:
$data = array( 'name' => 'John "The Rock" Johnson', 'age' => 30, 'gender' => 'male' );
json_encode()
関数を直接使用して JSON 文字列に変換する場合:
$json_str = json_encode($data); echo $json_str;
出力結果は次のとおりです:
{"name":"John "The Rock" Johnson","age":30,"gender":"male"}
JSON 文字列の name
フィールドの値が二重引用符で囲まれた文字列に正しく変換されていないことがわかります。ただし、最初の二重引用符で切り捨てられます。
この問題を解決するには、json_encode()
関数を使用して JSON 文字列に変換するときに、パラメーター JSON_UNESCAPED_SLASHES
を追加する必要があります。次に例を示します。
$json_str = json_encode($data, JSON_UNESCAPED_SLASHES); echo $json_str;
このようにして、出力結果は name
フィールドの値を二重引用符で囲まれた文字列に正しく変換します。
{"name":"John \"The Rock\" Johnson","age":30,"gender":"male"}
name は出力結果の
フィールド 値は二重引用符で正しく囲まれており、内部の二重引用符は \"
にエスケープされています。このようにして、変換された JSON 文字列を正しく解析できます。
JSON_UNESCAPED_SLASHES
パラメーターに加えて、json_encode()
関数の変換結果を制御するために使用できるパラメーターがいくつかあります。詳細については、PHP 公式ドキュメントの json_encode()
.
以上がPHP配列をJSONに変換する際の二重引用符の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。