У меня есть объект JSON, который я POST'ING для PHP из интерфейса ExtJS. Я получаю объект от
$json = $_POST["newUserInfo"];
Объект будет содержать 3 массива, которые я могу видеть, если я это сделаю
var_dump(json_decode($json));
Мне нужно взять каждый массив и построить SQL-запросы от них. Моим первым препятствием является получение массивов из объекта, хотя это может быть ненужным. Вот код, над которым я работаю:
/*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":"Some.Guy@Email.com","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']);
по/*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":"Some.Guy@Email.com","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']);
Я не правильно создаю массивы. Я тоже пробовал
$user_info = $jsonDecoded->USER;
и это тоже не работает. Я уверен, что мне здесь что-то не хватает. Опять же, это может быть ненужным, поскольку я могу, вероятно, получить к ним доступ напрямую. Мне нужно построить запрос, перейдя через массив и добавив каждый ключ в строку и каждое значение в строку. Поэтому у меня получилось бы что-то вроде
$query = "INSERT INTO USERS ($keyString) VALUES ($valueString);
Затем я повторю тот же процесс для массивов PERMISSIONS и SETTINGS. Это, наверное, просто, но я застрял здесь.
Если вы используете json_decode($json,true);
– true означает возвращение результатов объектов js в виде ассоциативных массивов – тогда вам нужно всего лишь $user_info = $jsonDecoded['USER'];
без json_decode
array()
, это то, что json_decode
для вас.
Если вы захотите опустить второй логический параметр, вы получите stdClass, который $jsonDecoded->USER;
будет работать для вас