PHP, JSon Comment lire la valeur booléenne reçu au format JSon et à écrire en chaîne sur PHP
- Je recevoir cette chaîne JSON à partir d'un autre site et je ne peux pas modifier ce que nous avons reçu. La chaîne est dans $_POST et est :
[
{
"clientId":"17295c59-4373-655a-1141-994aec1779dc",
"channel":"\/meta\/connect",
"connectionType":"long-polling",
"ext":{
"fm.ack":false,
"fm.sessionId":"22b0bdcf-4a35-62fc-3764-db4caeece44b"
},
"id":"5"
}
]
Je décoder la chaîne JSON avec le code suivant :
$receive = json_decode(file_get_contents('php://input'));
Et quand j'utilise print_r($receive)
je reçois le texte suivant:
Array (
[0] => stdClass Object
(
[clientId] => 17295c59-4373-655a-1141-994aec1779dc
[channel] => /meta/connect
[connectionType] => long-polling
[ext] => stdClass Object
(
[fm.ack] =>
[fm.sessionId] => 22b0bdcf-4a35-62fc-3764-db4caeece44b
)
[id] => 5
)
)
Je peux accéder et de lire tous les Tableau /Objet avec pas de problème :
$receive[$i]->clientId;
$receive[$i]->channel;
$connectionType = $receive[$i]->connectionType;
$receive[$i]->id;
$receive[$i]->ext->{'fm.sessionId'};
Mais {fm.ack} est vide
Dans la décodé chaîne JSON, la valeur false est pas entre ""
.
Est-il possible d'accéder et de lire la valeur false et de le convertir en chaîne de la valeur à la place?
Merci pour votre aide !
qu'est-ce que le comportement s'il est
true
dans le JSON ?OriginalL'auteur LiTHiUM2525 | 2013-02-26
Vous devez vous connecter pour publier un commentaire.
vous pouvez l'utiliser comme cela, en
JSON
format lorsque vous évaluezfalse
valeur, il vous donnerablank
, et lorsque vous évalueztrue
il vous donnera1
.de travail exemple de faux http://codepad.viper-7.com/7FBQfS
exemple de travail pour vrai http://codepad.viper-7.com/LX0pc6
false
. Pourquoi ne pas le comparer à l'encontre de qui? C'est ce que l'décodé tableau JSON contient.Oui, on peut aussi comapare avec
false
. Merci de remarquer.donc, si j'ai essayer de faire : if($recevoir[0]->ext>{'fm.ack'} == "") { echo "false"; } else { echo "true"; } c'est du travail !!! Merci!!!!
oui je sais c'est tellement de travail que si j'ai coder en dur ma chaîne JSon, ne fonctionne pas lorsque je reçois chaîne JSon $_POST le seul code peut lire la chaîne de caractères $reçoivent = json_decode(file_get_contents('php://input')); et ne pas travailler si je d'ajouter ,de vrai, de sorte que votre solution pour tester si == "" pour de faux d'autre vrai travail. Merci
C'est donc ghetto. En cours d'exécution dans ce problème dès maintenant. Dans ce monde devrait un JSON valide valeur "false" être retourné comme "vide"?
OriginalL'auteur Yogesh Suthar
Je sais qu'il existe déjà une réponse à cela, mais il peut être intéressant de noter que
var_dump
sorties de valeurs Booléennes mieux il a juste pire mise en forme de l'OMI.Résultats dans
OriginalL'auteur Christian
C'est très simple. Si vous utilisez js pour générer et transférer json, passez votre variable n'est pas dans sa forme pure, mais:
youBoolVar + 0
, faux puis sera de 0, et de véritables 1OriginalL'auteur Павел Ковалёв