Comment convertir un tableau vide en PHP en objet json : 1. Utilisez "JSON_FORCE_OBJECT" pour convertir un tableau vide en objet json ; 2. Utilisez la conversion de type de données pour convertir un tableau vide en objet json ; ; 3. Utilisez ArrayObject pour convertir un tableau vide en objet json.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
PHP json_encode convertit les tableaux vides dans des objets
Description du problème :
php fournit des interfaces sur le client, telles que PC, Android, iOS, etc. Si des données au format json sont renvoyées , lorsque les données renvoyées sont un tableau et que la clé est une chaîne, jsonObject sera renvoyé après la jsonisation. Cependant, s'il s'agit d'un tableau vide, jsonArray peut être renvoyé. Une incohérence dans la structure des données entraîne l'échec de l'analyse de json.
Par exemple :
$arr = [ 'id' => 123., 'name' => 'andrew' , ]; $jsonRet = json_encode( $arr ); print_r( $jsonRet );
Sortie :
{ "id": 123, "name": "andrew" }
Mais si c'est :
$arr = []; $jsonRet = json_encode($arr); print_r($jsonRet);
Sortie :
[ ]
Comment faire lorsque le tableau est vide, est-ce aussi JsonObject ?
Méthode 1 :
Utiliser JSON_FORCE_OBJECT
$arr = []; $jsonRet = json_encode($arr, JSON_FORCE_OBJECT); print_r($jsonRet);
Cette méthode a un inconvénient, par exemple :
$arr = [ 'jsonArray' => [ '21', '12', '13' ], 'jsonObject' => [] ]; $jsonRet = json_encode($arr,JSON_FORCE_OBJECT); print_r($jsonRet);
Sortie :
{ "jsonArray": { "0": "21", "1": "12", "2": "13" }, "jsonObject": { } }
Le jsonArray original a également été jsonObjectized, et les changements locaux ne peuvent pas affecter la
Méthode 2
Utiliser la conversion de type de données
$bar = array(); $foo = (object)$bar; echo json_encode($foo);
Troisième méthode (recommandée)
Utiliser ArrayObject
$arr = [ 'jsonArray' => [ '21', '12', '13' ], 'jsonObject' => new \ArrayObject() ]; $jsonRet = json_encode($arr); print_r($jsonRet);
Sortie :
{ "jsonArray": [ "21", "12", "13" ], "jsonObject": { } }
[Apprentissage recommandé : Tutoriel vidéo PHP]
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!