Maison > développement back-end > Problème PHP > Comment convertir php json en tableau

Comment convertir php json en tableau

PHPz
Libérer: 2023-04-25 09:35:19
original
526 Les gens l'ont consulté

Avec le développement d'Internet et les progrès de la technologie, la séparation du front-end et du back-end est devenue une approche architecturale courante. L'avantage de cette architecture est que le front-end et le back-end peuvent être développés séparément, ce qui rend le développement plus efficace ; le front-end peut implémenter les pages de manière plus flexible et améliorer l'expérience utilisateur et le back-end peut se concentrer davantage sur le traitement des données ; et la logique métier. Mais dans le processus de développement consistant à séparer le front-end et le back-end, la question du transfert de données front-end et back-end devient plus importante. Habituellement, nous choisissons d'utiliser le format JSON pour la transmission des données, et côté serveur, nous devons convertir les chaînes JSON en tableaux. PHP fournit de nombreuses fonctions pour réaliser cette fonction.

  1. json_decode()

json_decode() est l'une des fonctions intégrées de PHP, qui peut convertir des chaînes au format JSON en tableaux ou objets PHP. Cette fonction accepte deux paramètres : le premier est la chaîne JSON à décoder et le deuxième paramètre est un paramètre facultatif de type booléen qui spécifie si la valeur de retour doit être convertie en tableau associatif. La fonction json_decode() renvoie un objet lorsque le deuxième argument est faux (valeur par défaut), et un tableau associatif lorsque le deuxième argument est vrai. json_decode() 是 PHP 内置的函数之一,它可以将 JSON 格式的字符串转换为 PHP 数组或对象。这个函数接受两个参数:第一个是要被解码的 JSON 字符串,第二个参数是一个布尔类型的可选参数,用于指定返回值是否转换为关联数组。当第二个参数为 false 时(默认值),json_decode() 函数将返回一个对象,当第二个参数为 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"
Copier après la connexion
  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);
Copier après la connexion
  1. json_decode() + cURL

如果 JSON 数据是通过 API 获取的,我们可以使用 PHP 内置的 cURL 库获取数据,并用 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);
Copier après la connexion
  1. 使用第三方库

除了 PHP 内置的 json_decode() 函数,我们还可以使用第三方库来实现将 JSON 数据转换成数组的功能。常见的第三方库有:

  • symfony/yaml:Symfony YAML 组件提供了 YAML 和 JSON 之间的相互转换功能。虽然其主要目的是为 YAML 文件提供配置选项,但它实际上也可以将 JSON 转换为数组。
  • seld/jsonlint:seld/jsonlint 是一个 JSON 解析器,可以将 JSON 转换为数组,并进行语法检查。

这里以 symfony/yaml 为例,介绍如何使用第三方组件将 JSON 数据转换为数组。首先需要通过 Composer 安装相关组件:

composer require symfony/yaml
Copier après la connexion

然后在代码中使用 SymfonyComponentYamlYaml::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"
Copier après la connexion

总结

以上就是将 JSON 数据转换成数组的几种方法,其中 json_decode()

Exemple de code : 🎜rrreee
    🎜json_decode() + file_get_contents()🎜🎜🎜Si les données JSON sont lues à partir d'un fichier, nous pouvons également utiliser le file_get_contents() intégré à PHP La fonction lit le contenu du fichier, puis utilise la fonction json_decode() pour convertir les données JSON en tableau. Exemple de code : 🎜rrreee
      🎜json_decode() + cURL🎜🎜🎜Si les données JSON sont obtenues via l'API, nous pouvons utiliser la bibliothèque cURL intégrée de PHP pour obtenir les données et utiliser json_decode () convertit les données JSON en un tableau. Exemple de code : 🎜rrreee<ol start="4">🎜Utiliser des bibliothèques tierces🎜🎜🎜En plus de la fonction <code>json_decode() intégrée de PHP, nous pouvons également utiliser des bibliothèques tierces pour convertir la fonction de données JSON en un tableau. Les bibliothèques tierces courantes sont : 🎜
      🎜symfony/yaml : le composant Symfony YAML fournit des fonctions de conversion entre YAML et JSON. Bien que son objectif principal soit de fournir des options de configuration pour les fichiers YAML, il peut également convertir JSON en tableau. 🎜🎜seld/jsonlint : seld/jsonlint est un analyseur JSON qui peut convertir JSON en tableaux et effectuer une vérification de la syntaxe. 🎜
    🎜Ici, nous prenons symfony/yaml comme exemple pour présenter comment utiliser des composants tiers pour convertir des données JSON en tableau. Tout d'abord, vous devez installer les composants appropriés via Composer : 🎜rrreee🎜 Utilisez ensuite la méthode SymfonyComponentYamlYaml::parse() dans le code pour convertir les données JSON en tableau : 🎜rrreee🎜Summary🎜🎜 Ce qui précède consiste à convertir les données JSON en Il existe plusieurs méthodes pour les tableaux, parmi lesquelles json_decode() est la plus couramment utilisée. De plus, nous pouvons également utiliser des composants tiers pour la conversion. La méthode spécifique à utiliser peut être choisie en fonction de la situation et des besoins réels. Quelle que soit la méthode utilisée, nous devons vérifier si le format des données JSON est correct et gérer les situations anormales en conséquence. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal