Maison  >  Article  >  développement back-end  >  Comment convertir une chaîne JSON en tableau en PHP

Comment convertir une chaîne JSON en tableau en PHP

PHPz
PHPzoriginal
2023-04-23 09:16:15582parcourir

En PHP, nous avons souvent besoin de convertir des chaînes JSON en tableaux. Cela nous aide à exploiter et à traiter les données. Après tout, JSON est un format d'échange de données léger et de nombreuses interfaces réseau renvoient des données au format JSON.

Alors, comment convertir une chaîne JSON en tableau en PHP ? Présentons-le ci-dessous.

  1. Utilisez la fonction json_decode()

En PHP, nous pouvons utiliser la fonction json_decode() pour convertir une chaîne JSON en tableau PHP. La syntaxe de la fonction json_decode() est la suivante :

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

Parmi eux, le paramètre $json est la chaîne JSON à convertir. Le paramètre $assoc est facultatif et la valeur par défaut est FALSE. S'il est défini sur TRUE, le tableau converti sera un tableau associatif. Le paramètre $profondeur est facultatif et indique la profondeur de l'analyse récursive des chaînes JSON. Les chaînes JSON supérieures à cette profondeur seront converties en NULL. Le paramètre $options est facultatif et représente les options d'analyse JSON, qui peuvent être définies sur JSON_BIGINT_AS_STRING, JSON_OBJECT_AS_ARRAY ou JSON_THROW_ON_ERROR.

Ce qui suit est un exemple de conversion d'une chaîne JSON en tableau :

$json_str = '{"name": "Tom", "age": 20, "gender": "male"}';
$arr = json_decode($json_str, true);

print_r($arr);

Résultat de sortie :

Array
(
    [name] => Tom
    [age] => 20
    [gender] => male
)
  1. Résoudre le problème des caractères chinois tronqués

Si la chaîne JSON contient des caractères chinois, des caractères tronqués peuvent apparaître dans le tableau converti. À l'heure actuelle, nous devons utiliser l'option JSON_UNESCAPED_UNICODE pour exclure tous les caractères non-ASCII du codage hexadécimal.

Voici un exemple utilisant l'option JSON_UNESCAPED_UNICODE :

$json_str = '{"name": "汤姆", "age": 20, "gender": "男"}';
$arr = json_decode($json_str, true, 512, JSON_UNESCAPED_UNICODE);

print_r($arr);

Résultat de sortie :

Array
(
    [name] => 汤姆
    [age] => 20
    [gender] => 男
)
  1. Résoudre le problème des caractères spéciaux contenus dans les chaînes JSON

Parfois, des caractères spéciaux sont inclus dans la chaîne JSON, comme par < ou Contenu composé de symboles > Ces caractères spéciaux doivent être échappés dans la spécification de syntaxe JSON, mais certaines chaînes JSON renvoyées par l'interface ne sont pas échappées.

Pour le moment, nous devons utiliser l'option JSON_UNESCAPED_SLASHES pour garantir que ces caractères spéciaux ne seront pas échappés.

Ce qui suit est un exemple d'utilisation de l'option JSON_UNESCAPED_SLASHES :

$json_str = '{"name": "<Tom>", "age": 20, "gender": "&male&"}';
$arr = json_decode($json_str, true, 512, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

print_r($arr);

Résultat de sortie :

Array
(
    [name] => <Tom>
    [age] => 20
    [gender] => &male&
)

Ce qui précède explique comment convertir une chaîne JSON en tableau en PHP. J'espère que cela vous sera utile.

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