PHP未正确迭代嵌套的JSON
我试图循环遍历一个JSON对象PHP未正确迭代嵌套的JSON,php,android,json,Php,Android,Json,我试图循环遍历一个JSON对象(DATA),该对象包含三个嵌套的JSON对象(NEWUSERS,NEWUSERDATA,NEWRELATIONS),使用切换函数为MySQL插入选择合适的函数。当我循环键时,开关中的每个函数都被调用一次,但它们似乎都只接收NEWRELATIONS对象。因此,除了insertnewestrelations之外,函数失败,该函数用于接收NEWRELATIONS对象。我想答案一定是直截了当的,但是有人能想到为什么要重用JSON对象吗 读取和迭代JSON $json=js
(DATA)
,该对象包含三个嵌套的JSON对象(NEWUSERS
,NEWUSERDATA
,NEWRELATIONS
),使用切换函数为MySQL插入选择合适的函数。当我循环键时,开关中的每个函数都被调用一次,但它们似乎都只接收NEWRELATIONS
对象。因此,除了insertnewestrelations
之外,函数失败,该函数用于接收NEWRELATIONS
对象。我想答案一定是直截了当的,但是有人能想到为什么要重用JSON对象吗
读取和迭代JSON
$json=json_decode($_SERVER['HTTP_JSON'],true);
$data=$json['DATA'];
foreach($data as $key=>$json_obj){
$result=null;
$result=$db->insertNewSwitch($key,$json_obj,$last_sync);
$response[$key.":errors"]=$result['errors'];
$response[$key.":successes"]=$result['successes'];
}
开关功能
public function insertNewSwitch($key,$json_obj,$last_sync){
$result;
if($key="NEWUSERS"){
$result=$this->insertNewTestUsers($json_obj,$last_sync,$key);
}
if($key="NEWUSERDATA"){
$result=$this->insertNewTestUserdata($json_obj,$last_sync,$key);
}
if($key="NEWRELATIONS"){
$result=$this->insertNewTestRelations($json_obj,$last_sync,$key);
}
return $result;
}
您使用的是
=
而不是=
。这很可能是你的问题。
由于您正在分配值,因此每次都将计算为true,因此将输入每条语句。您使用的是
=
而不是=
。这很可能是你的问题。
由于您正在分配值,因此每次的计算结果都将为true,因此将输入每条语句。尝试在逻辑运算符中为开关使用else,也可以使用double equals进行比较
public function insertNewSwitch($key,$json_obj,$last_sync){
$result;
if($key=="NEWUSERS"){
$result=$this->insertNewTestUsers($json_obj,$last_sync,$key);
}
else if($key=="NEWUSERDATA"){
$result=$this->insertNewTestUserdata($json_obj,$last_sync,$key);
}
else if($key=="NEWRELATIONS"){
$result=$this->insertNewTestRelations($json_obj,$last_sync,$key);
}
return $result;
}
尝试在逻辑运算符中为交换机使用else,并使用double equals进行比较
public function insertNewSwitch($key,$json_obj,$last_sync){
$result;
if($key=="NEWUSERS"){
$result=$this->insertNewTestUsers($json_obj,$last_sync,$key);
}
else if($key=="NEWUSERDATA"){
$result=$this->insertNewTestUserdata($json_obj,$last_sync,$key);
}
else if($key=="NEWRELATIONS"){
$result=$this->insertNewTestRelations($json_obj,$last_sync,$key);
}
return $result;
}
一个问题是if语句分配值而不是比较值:
if($key=“NEWUSERS”){
应该是if($key==“NEWUSERS”){
一个问题是if语句分配值而不是比较值:if($key=“NEWUSERS”){
应该是if($key==“NEWUSERS”){
啊,毕竟是盯着我的脸看。谢谢你在我发疯的时候帮助我。啊,毕竟是盯着我的脸看。谢谢你在我发疯的时候帮助我。