我觉得你弄错了.你正在做的是迭代对象的所有变量,即首先得到公共变量0(也是一个对象),在第二次运行语句foreach中,你得到变量Status,因为’Status’的值是int并且没有名为’forename_1’的属性,依此类推,你得到属性不存在的错误.
如果您真的希望这个工作,您必须更改JSON对象的结构,以便您可以遍历要显示的人员列表,例如:
object(stdClass)[2]
public 'list' =>
array(0 =>
object(stdClass)[3]
public 'forename_1' => string 'JAMES' (length=5)
public 'middle1_1' => string '' (length=0)
public 'middle2_1' => string '' (length=0)
public 'middle3_1' => string '' (length=0)
public 'surname_1' => string 'TURNER' (length=7)
public 'Status' => int 100,
1 =>
object(stdClass)[3]
public 'forename_1' => string 'JAMES' (length=5)
public 'middle1_1' => string '' (length=0)
public 'middle2_1' => string '' (length=0)
public 'middle3_1' => string '' (length=0)
public 'surname_1' => string 'TURNER' (length=7)
public 'Status' => int 100,
2 =>
object(stdClass)[3]
public 'forename_1' => string 'JAMES' (length=5)
public 'middle1_1' => string '' (length=0)
public 'middle2_1' => string '' (length=0)
public 'middle3_1' => string '' (length=0)
public 'surname_1' => string 'TURNER' (length=7)
public 'Status' => int 100
)
编辑:
如果您不能或不想更改数据结构,则将函数调用json_decode的结果作为关联数组,然后在foreach语句中检查是否存在必需字段:
$Result = json_decode($data, true);
= $o['forename_1'] ?>= $o['surname_1'] ?>More Info