ホームページ >バックエンド開発 >PHPの問題 >PHPのJSONを配列に変換する方法

PHPのJSONを配列に変換する方法

PHPz
PHPzオリジナル
2023-04-25 09:02:04526ブラウズ

インターネットの発展とテクノロジーの進歩に伴い、フロントエンドとバックエンドの分離が一般的なアーキテクチャ アプローチになりました。このアーキテクチャの利点は、フロントエンドとバックエンドを個別に開発できるため、開発がより効率的になること、フロントエンドがより柔軟にページを実装してユーザー エクスペリエンスを向上できること、バックエンドがデータ処理により集中できることです。そしてビジネスロジック。しかし、フロントエンドとバックエンドを分離する開発プロセスでは、フロントエンドとバックエンドのデータ転送の問題がより重要になります。通常、データ送信には JSON 形式が使用されますが、サーバー側では JSON 文字列を配列に変換する必要がありますが、PHP にはこの機能を実現するための関数が多数用意されています。

  1. json_decode()

json_decode() は、PHP の組み込み関数の 1 つで、JSON 形式の文字列を PHP 配列またはオブジェクトに変換できます。 。この関数は 2 つのパラメータを受け入れます。1 つ目はデコードする JSON 文字列で、2 つ目のパラメータは戻り値を連想配列に変換するかどうかを指定するブール型のオプションのパラメータです。 2 番目のパラメーターが false (デフォルト値) の場合、json_decode() 関数はオブジェクトを返し、2 番目のパラメーターが true の場合、関数は連想配列を返します。

コード例:

$json_str = '{"name": "Tom", "age": 18}';
// 将 JSON 字符串解码成对象
$obj = json_decode($json_str);
echo $obj->name;  // 输出 "Tom"
echo $obj->age;   // 输出 "18"

// 将 JSON 字符串解码成关联数组
$arr = json_decode($json_str, true);
echo $arr['name'];  // 输出 "Tom"
echo $arr['age'];   // 输出 "18"
  1. json_decode() file_get_contents()

JSON データがファイルから読み取られる場合は、PHP を使用することもできます。組み込みの file_get_contents() 関数はファイルの内容を読み取り、json_decode() 関数を使用して JSON データを配列に変換します。コード例:

$json_file = 'test.json';
// 读取文件内容
$json_str = file_get_contents($json_file);
$arr = json_decode($json_str, true);
  1. json_decode() cURL

JSON データが API を通じて取得される場合は、PHP の組み込み cURL ライブラリを使用してデータを取得し、 use json_decode() 関数は、JSON データを配列に変換します。コード例:

$url = 'https://api.example.com/get_data';
// 初始化 cURL
$ch = curl_init();
// 设置 URL 和其他 cURL 选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 发送请求并处理响应
$response = curl_exec($ch);
$arr = json_decode($response, true);
// 关闭 cURL
curl_close($ch);
  1. サードパーティ ライブラリの使用

PHP の組み込み json_decode() 関数に加えて、サードパーティのライブラリも使用できます。 -JSONデータを配列に変換する関数を実装するpartyライブラリ。一般的なサードパーティ ライブラリは次のとおりです。

  • symfony/yaml: Symfony YAML コンポーネントは、YAML と JSON の間の変換関数を提供します。その主な目的は YAML ファイルの構成オプションを提供することですが、実際には JSON を配列に変換することもできます。
  • seld/jsonlint: seld/jsonlint は、JSON を配列に変換し、構文チェックを実行できる JSON パーサーです。

ここでは、symfony/yaml を例として、サードパーティのコンポーネントを使用して JSON データを配列に変換する方法を紹介します。まず、Composer を通じて関連コンポーネントをインストールする必要があります:

composer require symfony/yaml

次に、コード内で Symfony\Component\Yaml\Yaml::parse() メソッドを使用して、JSON データを配列:

use Symfony\Component\Yaml\Yaml;

$json_str = '{"name": "Tom", "age": 18}';

// 将 JSON 字符串转换成数组
$arr = Yaml::parse($json_str);
echo $arr['name'];  // 输出 "Tom"
echo $arr['age'];   // 输出 "18"

概要

上記は、JSON データを配列に変換するいくつかの方法であり、その中で最も一般的に使用されるのは json_decode() です。また、サードパーティ製コンポーネントを使用して変換することもでき、実際の状況やニーズに応じて具体的な方法を選択できます。どちらの方法を使用する場合でも、JSON データの形式が正しいかどうかに注意し、例外が発生した場合はそれに応じて処理する必要があります。

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

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