Accéder objet JSON éléments en PHP
J'ai un objet JSON que je suis le POST AVEC PHP à partir de ExtJS interface. Je reçois l'objet de
$json = $_POST["newUserInfo"];
L'objet contient 3 tableaux, je peux voir si je ne
var_dump(json_decode($json));
J'ai besoin de prendre chaque tableau et de construire des requêtes SQL à partir d'eux. Mon premier obstacle est d'obtenir des matrices à l'extérieur de l'objet, même si cela peut être inutile. Voici le bloc de code, je travaille à partir de:
/*Variable passed in from the ExtJS interface as JSON object*/
$json = $_POST["newUserInfo"];
//$json = '{"USER":{"ID":"","FULL_USER_NAME":"Some Guy","ENTERPRISE_USER_NAME":"guyso01","USER_EMAIL":"[email protected]","USER_PHONE":"123-456-7890"},"PERMISSIONS":{"ID":"","USER_ID":"","IS_ADMIN":"true"},"SETTINGS":{"ID":"","USERS_ID":"","BACKGROUND":"default"}}';
//Test to view the decoded output
//var_dump(json_decode($json));
//Decode the $json variable
$jsonDecoded = json_decode($json,true);
//Create arrays for each table from the $jsonDecoded object
$user_info = array($jsonDecoded['USER']);
$permissions_info = array($jsonDecoded['PERMISSIONS']);
$settings_info = array($jsonDecoded['SETTINGS']);
Je ne suis pas de créer correctement les tables. J'ai aussi essayé de
$user_info = $jsonDecoded->USER;
et que cela ne fonctionne pas. Je suis sûr que je suis absent quelque chose de facile ici. Encore une fois, cela peut être inutile comme je peux sans doute y accéder directement. J'ai besoin de construire la requête par une boucle dans le tableau et en ajoutant chaque clé d'une chaîne et chaque valeur à une chaîne. Alors j'aimerais retrouver avec quelque chose comme
$query = "INSERT INTO USERS ($keyString) VALUES ($valueString);
Alors je vous répétez le même processus pour les AUTORISATIONS et PARAMÈTRES les tableaux. C'est sans doute simple, mais je suis coincé ici.
- vous obtenez un tableau à partir du JSON, il n'y a pas besoin de le rendre
array(array())
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez
json_decode($json,true);
- véritable moyen de retourner les objets js les résultats comme des tableaux associatifs - alors tout ce que vous avez à faire est de$user_info = $jsonDecoded['USER'];
sansarray()
cast cause c'est ce quejson_decode
faire pour vous.Si vous choisissez de supprimer la deuxième paramètre booléen alors vous aurez un stdClass qui
$jsonDecoded->USER;
serait travailler pour vousarray_keys
etarray_values
pour obtenir la clé->value paires pour la chaîne de requête.