Maison  >  Article  >  développement back-end  >  Discutez de la façon dont PHP convertit json en tableau (trois méthodes)

Discutez de la façon dont PHP convertit json en tableau (trois méthodes)

PHPz
PHPzoriginal
2023-04-03 15:00:56919parcourir

PHP est un langage de programmation couramment utilisé qui peut convertir JSON en tableaux, rendant le traitement et la gestion des données plus simples et plus efficaces. Voici quelques méthodes et techniques pour aider les développeurs à mettre en œuvre rapidement cette opération.

  1. Utilisez la fonction json_decode()

En PHP, la fonction json_decode() peut facilement convertir des données au format JSON en un tableau PHP. La syntaxe spécifique est la suivante :

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Description du paramètre :

  • . $json  : transmettez une chaîne JSON ; $json: 传入一个JSON字符串;
  • $assoc: (可选)默认为false,表示返回一个stdClass对象;若设置为true,则返回一个数组;
  • $depth: (可选)表示递归的最大深度,默认为512层;
  • $options: (可选)设置解码时的选项,常见的有JSON_BIGINT_AS_STRING(将大数字转换成string类型)、JSON_OBJECT_AS_ARRAY(将stdClass对象转换成数组)等。

例如:

$json_str = '{"name":"Jack","age":30,"city":"Beijing"}';
$arr = json_decode($json_str, true);
print_r($arr);

输出结果为:

Array (
    [name] => Jack
    [age] => 30
    [city] => Beijing
)
  1. 使用json_decode()函数 + file_get_contents()函数

不仅可以将JSON字符串转为数组,还可以将JSON数据从一个文件中读取,然后将其转换为数组。此时可以使用file_get_contents()函数来读取JSON文件中的内容,再使用上述的json_decode()函数实现转换。

例如:

$json_file = 'data.json';
$json_str = file_get_contents($json_file);
$arr = json_decode($json_str, true);
print_r($arr);
  1. 使用json_decode()函数 + curl库

如果JSON数据不在本地文件中,而是通过网络传输过来的,此时可以使用curl库获取JSON数据,然后使用json_decode()函数实现转换。

例如:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.example.com/data.json');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

$arr = json_decode($result, true);
print_r($arr);

上述代码使用了curl库来请求https://api.example.com/data.json接口,将返回的JSON数据转换为数组,并输出结果。

总结

本文介绍了三种将JSON数据转换为PHP数组的方法,各具优缺点,开发者可以根据实际情况选择适合的方法。在使用json_decode()

$assoc : (facultatif) La valeur par défaut est false, ce qui signifie qu'un objet stdClass est renvoyé s'il est défini sur true, un tableau est renvoyé ; ; 🎜🎜 $profondeur : (facultatif) indique la profondeur maximale de récursion, la valeur par défaut est de 512 couches ; 🎜🎜$options : (facultatif) définit les options lors du décodage, les plus courants sont JSON_BIGINT_AS_STRING (convertir les grands nombres en type chaîne), JSON_OBJECT_AS_ARRAY (convertir les objets stdClass en tableaux), etc. 🎜🎜Par exemple : 🎜rrreee🎜Le résultat de sortie est : 🎜rrreee
    🎜Utilisez la fonction json_decode() + la fonction file_get_contents()🎜🎜🎜 non seulement peut convertir la chaîne JSON en tableau, mais les données JSON peuvent également être lues à partir d'un fichier puis converties en tableau. À ce stade, vous pouvez utiliser la fonction file_get_contents() pour lire le contenu du fichier JSON, puis utiliser la fonction json_decode() mentionnée ci-dessus pour réaliser la conversion. 🎜🎜Par exemple : 🎜rrreee
      🎜Utilisez la fonction json_decode() + la bibliothèque curl🎜🎜🎜Si les données JSON ne sont pas dans le fichier local, mais sont transmises sur le réseau, vous pouvez utiliser le curl bibliothèque pour obtenir les données JSON, puis utilisez la fonction json_decode() pour implémenter la conversion. 🎜🎜Par exemple : 🎜rrreee🎜Le code ci-dessus utilise la bibliothèque curl pour demander l'interface https://api.example.com/data.json, convertir les données JSON renvoyées en tableau et afficher le résultat. 🎜🎜Résumé🎜🎜Cet article présente trois méthodes de conversion de données JSON en tableaux PHP. Chacune a ses propres avantages et inconvénients. Les développeurs peuvent choisir la méthode appropriée en fonction de la situation réelle. Lorsque vous utilisez la fonction json_decode(), vous devez également faire attention aux options de décodage, à la profondeur de récursion, au type de données renvoyé et à d'autres problèmes pour éviter les erreurs. Je pense qu'en maîtrisant ces compétences, l'efficacité du travail des développeurs PHP sera considérablement améliorée. 🎜

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!

Déclaration:
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