在PHP中访问JSON对象元素

ell*_*lis 2 php json object

我有一个JSON对象,我正在从ExtJS接口发布到PHP.我从中得到了这个对象

$json = $_POST["newUserInfo"];
Run Code Online (Sandbox Code Playgroud)

该对象将包含3个数组,如果我这样做,我可以看到

var_dump(json_decode($json));
Run Code Online (Sandbox Code Playgroud)

我需要获取每个数组并从中构建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']);  
Run Code Online (Sandbox Code Playgroud)

我没有正确创建数组.我也试过了

$user_info = $jsonDecoded->USER;
Run Code Online (Sandbox Code Playgroud)

这也不起作用.我相信我在这里很容易丢失一些东西.同样,这可能是不必要的,因为我可以直接访问它们.我需要通过循环遍历数组并将每个键附加到字符串并将每个值附加到字符串来构建查询.所以我最终得到了类似的东西

$query = "INSERT INTO USERS ($keyString) VALUES ($valueString);
Run Code Online (Sandbox Code Playgroud)

然后我会为PERMISSIONS和SETTINGS数组重复相同的过程.这可能很简单,但我被困在这里.

Adi*_*idi 20

如果您正在使用json_decode($json,true);- true表示将js对象结果作为关联数组返回 - 那么您所要做的就是$user_info = $jsonDecoded['USER'];没有array()强制转换原因,这json_decode就是为您做的事情.

如果您选择省略第二个布尔参数,那么您将获得一个$jsonDecoded->USER;适合您的stdClass