ホームページ > バックエンド開発 > PHPの問題 > PHP配列をJSONに変換する際の二重引用符の問題を解決する方法

PHP配列をJSONに変換する際の二重引用符の問題を解決する方法

PHPz
リリース: 2023-04-18 15:46:37
オリジナル
1711 人が閲覧しました

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 つのフィールド値 nameagegender の配列を 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート