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

Comment convertir le format php json

藏色散人
Libérer: 2023-03-08 12:04:02
original
2382 Les gens l'ont consulté

Comment convertir le format php json : 1. Convertissez le tableau et l'objet php au format json via la fonction json_encode ; 2. Convertissez le texte json en structure de données PHP correspondante via la fonction json_decode.

Comment convertir le format php json

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3.

Conversion mutuelle du format PHP json

php fournit nativement json_encode($str) et json_decode($str).

1.json_encode()

Cette fonction convertit le tableau et l'objet php au format json.

eg:array
  $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);  echo json_encode($arr);
result:{"a":1,"b":2,"c":3,"d":4,"e":5}
eg:object
  $obj->body = 'another post';
  $obj->id = 21;
result:  {    "body":"another post",
    "id":21,
  }
Copier après la connexion

2. Tableaux indexés et tableaux associatifs

PHP prend en charge deux types de tableaux, l'un est un tableau indexé qui stocke uniquement "value" (value), l'autre est un tableau associatif qui stocke les paires nom/valeur.

Étant donné que javascript ne prend pas en charge les tableaux associatifs, json_encode() convertit uniquement le tableau indexé au format tableau et convertit le tableau associatif au format objet .

Par exemple, il existe un tableau d'index

$arr = Array('one', 'two', 'trois');

echo json_encode( $ arr);

Le résultat est :

 ["un", "deux", "trois"]

Si vous changez-le Pour un tableau associatif :

 $arr = Array('1'=>'un', '2'=>'deux', '3'=>'trois' );

echo json_encode($arr);

Le résultat change :

 {"1":"one","2": "two ","3": three"}

Notez que le format des données est passé de "[]" (tableau) à "{}" (objet).

Si vous devez forcer "index array" dans "object", vous pouvez écrire comme ceci

 json_encode( (object)$arr );

ou

json_encode ( $arr, JSON_FORCE_OBJECT );

3. Conversion des classes

Ce qui suit est une classe PHP :

class Foo {

const ERROR_CODE = '404';

public $public_ex = 'c'est public'

private $private_ex = 'this est privé !';

  protected $protected_ex = 'cela devrait être protégé';

public function getErrorCode() {

return self::ERROR_CODE >

>

 }

Maintenant, convertissez les instances de cette classe en json :

$foo = new Foo;

$foo_json = json_encode($foo);

echo $foo_json;

Le résultat de sortie est

{"public_ex":"ceci est public"}

Vous pouvez voir Arrive, sauf pour les variables publiques (public), d'autres choses (constantes, variables privées, méthodes, etc.) manquent .

[Apprentissage recommandé : Tutoriel vidéo PHP]

4. json_decode()

Cette fonction est utilisée pour convertir json. texte Convertir en structure de données PHP correspondante. Voici un exemple :

$json = '{"foo": 12345}';

$obj = json_decode($json);

print $ obj->{'foo'}; // 12345

Normalement, json_decode() renvoie toujours un objet PHP, pas un tableau. Par exemple :

 $json = '{"a":1,"b":2,"c":3,"d":4,"e":5} ' ;

var_dump(json_decode($json));

Le résultat est de générer un objet PHP :

object(stdClass)#1 (5) {

 ["a"] => int(1)
 ["b"] => int(2)
 ["c"] => 3)
 ["d"] => int(4)
  ["e"] => >Si vous souhaitez forcer la génération d'un tableau associatif PHP, json_decode() doit ajouter un paramètre true

:

 $json = '{"a":1,"b" :2,"c":3 ,"d":4,"e":5}';

var_dump(json_decode($json),true);


Le résultat est généré Un tableau associatif :
array(5) {

  ["a"] => int(1)

  [" b"] => int( 2)

 ["c"] => int(3)
 ["d"] => int(4)

 ["e"] => ; int(5)

 }



5 Erreurs courantes de json_decode()

Les trois façons suivantes d'écrire json sont toutes. faux. Pouvez-vous voir où est l'erreur ?

$bad_json = "{ 'bar' : 'baz' }";

$bad_json = '{ bar : "baz" }';

$ bad_json = '{ "bar": "baz", }';

L'exécution de json_decode() sur ces trois chaînes renverra null et signalera une erreur.

La première erreur est que le délimiteur json autorise uniquement l'utilisation de guillemets doubles, pas de guillemets simples. La deuxième erreur est que le "nom" (la partie à gauche des deux points) de la paire de valeurs nom json, doit utiliser des guillemets doubles dans tous les cas. La troisième erreur est que vous ne pouvez pas ajouter une virgule après la dernière valeur.

De plus, json ne peut être utilisé que pour représenter des objets et des tableaux. Si json_decode() est utilisé sur une chaîne ou une valeur, null sera renvoyé.

 var_dump(json_decode("Hello World")); //null

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!

Étiquettes associées:
php
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