我在json中传递对象数组并试图在foreach循环中访问它但是我收到错误"试图获取非对象的属性"
JSON
{" I":[{"名称":" Siddhesh 米什拉""移动":" 7798645895""两性":" M"},{"名称&#34 ;:" PRATIK 潘德""移动":" 7798645891""两性":" M"}]
foreach循环
foreach ($request->i as $key => $insrtobj) {
if($insrtobj->name && $insrtobj->mobile && $insrtobj->gender){
}
else
$response = response()->json(['data'=>[], 'error'=>1, 'success'=>0, 'error_msg'=>'request with mandatory param','message'=>'check the input data']);
}
答案 0 :(得分:1)
Laravel Request对象使用json_decode
自动解码json输入,但它传递true
作为第二个参数将对象转换为数组。因此,当从请求访问json数据时,您需要将其视为关联数组,而不是对象。
if ($insrtobj['name'] && $insrtobj['mobile'] && $insrtobj['gender']) {
答案 1 :(得分:0)
将JSON数据转换为数组形式并使用它......:
$arrData = json_decode(YOURJSONDATA, true);
foreach ($arrData as $key => $insrtData) {
//your rest of code...
}
注意:如果为TRUE,则返回的对象将转换为关联数组。 Docs