2010-11-30 10 views
1

Voici le codeComment tirer les ficelles de l'objet JSON

$jsonString = urldecode($json); 
$jsonString = str_replace("\\", "", $jsonString); 
$data = JSON_decode($jsonString); 
mysql_select_db($database) or die('Cannot connect to database.'); 
print_r($data); 

sortie:

stdClass Object ([myObject] => Array ([0] => stdClass Object ([fullname] => abc [role] => ADMIN [username] => xyz))) 

ma question comment puis-je tirer des valeurs individuelles et les insérer dans la base de données fullname, le rôle et Nom d'utilisateur

Répondre

2

Par défaut json_decode tours un objet JSON dans un objet PHP, vous aurez donc besoin d'accéder s il aime:

$data->myObject[0]->fullname; 

Lorsque le stockage de vos données dans une requête MySQL:

$query = "INSERT INTO table SET fullname = '{$data->myObject[0]->fullname}'"; 

Si vous préférez utiliser un tableau au lieu d'un objet, vous pouvez utiliser:

$data = json_decode($jsonString, true); //notice the 2nd parameter 

De cette façon, vous pouvez accéder à vos variables avec un tableau comme les deux autres affiches décrites.

EDIT

Vous n'avez pas vraiment besoin d'utiliser une boucle, vous venez de définir:

$data = json_decode($jsonString, true); 
$users = $data['myObject']; 

Puisque vous avez déjà un choix parfaitement valable dans $ data [ 'de myObject' ]

+0

Y at-il un meilleur moyen que je peux tirer toutes ces valeurs en utilisant une boucle for et les stocker dans un tableau – hitek

+0

Vous n'avez pas vraiment besoin de - voir mon edit. – Calvin

+0

Je l'ai fait de cette façon, mais je ne vois pas de nouveaux enregistrements dans la table pouvez-vous expliquer ce que je fais mal ici? merci d'avance :) $ query = "INSERT dans $ nom_table (USER, NETWORKNAME, ROLE) VALEURS ('$ dataArray [0] [' fullname ']', '$ dataArray [0] [' nom d'utilisateur ']', ' $ dataArray [0] ['role'] ') "; – hitek

1

pour obtenir fullname:

$fullname = $data['myObject'][0]['fullname']; 

Idem pour rôle/ADMIN

Ce que vous pouvez ajouter à votre chaîne SQL à insérer dans votre base de données.

Pour un exemple d'un insert en voir mysql: http://www.w3schools.com/PHP/php_mysql_insert.asp

1

si vous ne

$data = JSON_decode($jsonString, true); // just add true 

puis il suffit d'utiliser

$name = $data['myObject'][0]['name']; 

et enregistrez-