Maison  >  Article  >  développement back-end  >  Comment convertir un objet json en objet tableau de chaînes en php

Comment convertir un objet json en objet tableau de chaînes en php

PHPz
PHPzoriginal
2023-04-18 09:48:18432parcourir

En PHP, la fonction json_decode peut analyser une chaîne JSON en un objet ou un tableau en PHP, tandis que la fonction json_encode peut convertir un objet ou un tableau PHP en une chaîne JSON. Mais parfois, nous devons convertir des objets JSON en objets de tableau de chaînes, que devons-nous faire ?

Supposons que notre chaîne JSON ressemble à ceci :

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "running", "swimming"]
}

Nous pouvons la convertir en un objet tableau de chaînes en utilisant le code PHP suivant :

$json = '{"name":"Tom","age":18,"hobbies":["reading","running","swimming"]}';
$data = json_decode($json, true);

$keys = array_keys($data);
$values = array_values($data);

$str_arr = [];
for ($i = 0; $i < count($keys); $i++) {
    if (is_array($values[$i])) {
        $str_arr[$keys[$i]] = json_encode($values[$i]);
    } else {
        $str_arr[$keys[$i]] = (string) $values[$i];
    }
}

var_dump($str_arr);

Tout d'abord, nous transmettons la chaîne JSON à la fonction json_decode et deuxièmement, définir ce paramètre sur true signifie convertir le JSON analysé en un tableau associatif.

Ensuite, nous utilisons la fonction array_keys pour obtenir les noms de clés du tableau associatif, et la fonction array_values ​​​​pour obtenir les valeurs du tableau associatif.

Ensuite, nous parcourons tous les noms de clés et valeurs via la boucle for et déterminons si la valeur est un tableau. Si la valeur est un tableau, nous utiliserons la fonction json_encode pour la convertir en chaîne JSON ; si ce n'est pas un tableau, nous utiliserons un cast pour la convertir en chaîne.

Enfin, nous utilisons le nom de la clé comme clé et la chaîne comme valeur pour construire un nouveau tableau associatif. En utilisant la fonction var_dump pour afficher les résultats, vous pouvez obtenir le résultat suivant :

array(3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  string(2) "18"
  ["hobbies"]=>
  string(28) "["reading","running","swimming"]"
}

Comme vous pouvez le voir, nous avons réussi à convertir l'objet JSON en un objet tableau de chaînes. Parmi eux, l'étape clé consiste à utiliser la fonction json_encode pour convertir le tableau en chaîne JSON.

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