Maison > développement back-end > Problème PHP > Comment convertir un tableau vide en objet json en php

Comment convertir un tableau vide en objet json en php

藏色散人
Libérer: 2023-03-09 10:10:02
original
3027 Les gens l'ont consulté

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.

Comment convertir un tableau vide en objet json en php

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 );
Copier après la connexion

Sortie :

{
  "id": 123,
  "name": "andrew"
}
Copier après la connexion

Mais si c'est :

$arr = [];
$jsonRet = json_encode($arr);
print_r($jsonRet);
Copier après la connexion

Sortie :

[
  
]
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

Sortie :

{
  "jsonArray": {
    "0": "21",
    "1": "12",
    "2": "13"
  },
  "jsonObject": {
    
  }
}
Copier après la connexion

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);
Copier après la connexion

Troisième méthode (recommandée)

Utiliser ArrayObject

$arr = [
    'jsonArray' => [
        '21', '12', '13'
    ],
    'jsonObject' => new \ArrayObject()
];
$jsonRet = json_encode($arr);
print_r($jsonRet);
Copier après la connexion

Sortie :

{
  "jsonArray": [
    "21",
    "12",
    "13"
  ],
  "jsonObject": {
    
  }
}
Copier après la connexion

[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!

É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