Как вытащить строки из объекта JSON - PullRequest
1 голос
/ 30 ноября 2010

Вот код

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

выход:

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

мой вопрос, как я могу получить отдельные значения и вставить их в базу данных полное имя, роль и имя пользователя

Ответы [ 3 ]

2 голосов
/ 30 ноября 2010

По умолчанию json_decode превращает объект JSON в объект PHP, поэтому вам необходимо получить к нему доступ следующим образом:

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

При сохранении данных в запросе mysql:

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

Если вы предпочитаете использовать массив вместо объекта, вы можете использовать:

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

Таким образом, вы можете получить доступ к своим переменным с помощью массива, как два других описанных плаката.

РЕДАКТИРОВАТЬ

Вам на самом деле не нужно использовать цикл for, вы просто должны установить:

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

Поскольку у вас уже есть совершенно правильный массив в$ данных [ 'MyObject'].

1 голос
/ 30 ноября 2010

если вы делаете

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

, просто используйте

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

и сохраните его

1 голос
/ 30 ноября 2010

для получения полного имени:

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

То же самое для роли / ADMIN

, которую можно добавить в строку SQL для вставки в базу данных.

Например,вставки в mysql см .: http://www.w3schools.com/PHP/php_mysql_insert.asp

...