ホームページ  >  記事  >  バックエンド開発  >  PHP 配列から JSON への変換: FAQ

PHP 配列から JSON への変換: FAQ

WBOY
WBOYオリジナル
2024-05-03 08:12:02989ブラウズ

PHP では、次の手順で配列と JSON の間で変換できます。 配列を JSON に変換する: json_encode() 関数を使用します。 JSON を配列に変換する: json_decode() 関数を使用し、配列を返す true 引数を指定します。特殊文字の処理: json_encode() は特殊文字を自動的にエスケープしますが、手動でエスケープした後も注意が必要です。 Unicode 文字の処理: JSON_UNESCAPED_UNICODE フラグを使用して Unicode エスケープを有効にします。循環参照の処理: JSON_PARTIAL_OUTPUT_ON_ERROR フラグを有効にすると、循環参照が発生したときに部分的な JSON 出力を返すことができます。

PHP 数组与 JSON 转换:常见问题解答

PHP 配列から JSON への変換: FAQ

PHP では、配列と JSON (JavaScript Object Notation) が 2 つの一般的なデータ構造ですデータの保存と転送に広く使用されています。この記事では、配列と JSON の間で変換する際の一般的な複雑な問題を調査し、解決策を示すコード例を提供します。

質問 1: 配列を JSON に変換する

コード:

$array = ['name' => 'John Doe', 'age' => 30];
$json = json_encode($array);

質問 2: 配列の JSON を変換する

コード:

$json = '{"name": "John Doe", "age": 30}';
$array = json_decode($json, true);

注: true パラメーターが省略された場合、json_decode 配列ではなくオブジェクトを返します。

質問 3: 特殊文字の処理

PHP の特殊文字 (引用符、バックスラッシュなど) は、JSON でエスケープする必要があります。 json_encode 関数はこの変換を自動的に実行しますが、変換前に配列を手動でエスケープする場合は注意が必要です。

コード:

$array = ['name' => 'John"Doe'];
$json = json_encode($array);  // 结果:{"name": "John\"Doe"}

質問 4: Unicode 文字の処理

Unicode 文字は、JSON エスケープ シーケンス表現では 16 進数である必要があります。 json_encode この関数は、デフォルトではこの変換を実行しません。 Unicode エスケープを有効にするには、JSON_UNESCAPED_UNICODE フラグを使用します。

コード:

$array = ['name' => '王小明'];
$json = json_encode($array, JSON_UNESCAPED_UNICODE);  // 结果:{"name": "\u738b\u5c0f\u660e"}

質問 5: 循環参照の処理

入れ子になったデータ構造内の循環参照により JSON 変換が失敗する。この問題を解決するには、JSON_PARTIAL_OUTPUT_ON_ERROR フラグを有効にして、循環参照が発生したときに json_encode が部分的な JSON 出力を返すようにします。

コード:

$array = ['name' => 'John Doe'];
$array['self'] = &$array;
$json = json_encode($array, JSON_PARTIAL_OUTPUT_ON_ERROR);  // 仅输出部分 JSON 数据

実践例

以下は、ユーザー情報をPHP配列からJSONに変換して表示します。 HTML ページに表示されます 実際のケースは次のとおりです:

<?php
$user = ['name' => 'John Doe', 'age' => 30, 'address' => '123 Main Street'];
$json = json_encode($user);
?>

<html>
<head><title>用户信息</title></head>
<body>
<h1><?php echo $user['name']; ?></h1>
<p>年龄:<?php echo $user['age']; ?></p>
<p>地址:<?php echo $user['address']; ?></p>
</body>
</html>

以上がPHP 配列から JSON への変換: FAQの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。