Php 解码json数组对象

Php 解码json数组对象,php,json,Php,Json,我有一个返回JSON对象的php函数 运行此代码: $obj = json_decode($result); print_r($obj); 其中,$result是函数的输出。$result是: {"result":[{"name":"name1","title":"title1","type":"1","place":"place1"}, {"name":"name2","title":"title2","type":"1","place":"place2"}]} 我的输出是: stdC

我有一个返回JSON对象的php函数

运行此代码:

$obj = json_decode($result); print_r($obj); 
其中,
$result
是函数的输出。
$result
是:

{"result":[{"name":"name1","title":"title1","type":"1","place":"place1"}, 
{"name":"name2","title":"title2","type":"1","place":"place2"}]}
我的输出是:

stdClass Object ( [result] => Array ( [0] => stdClass Object ( [name] => name1 [title] => title1 [type] => 1 [place] => place1 ) 
[1] => stdClass Object ( [name] => name2 [title] => title2 [type] => 1 [place] => place2 ) ))   
所以我想要的是访问每个项目的name1、title1等值

我试过这个:

echo $obj->result[0];
因为我得到了第一排,但它什么也没给我

如果我尝试这样的方法:

foreach ($obj as $key => $value) {
  var_dump ($value);
  foreach ($value as $feature => $item) {
     echo $feature.' =>' .$item;
  }
}
它只输入第一个循环一次(输出是一个数组(2)和项目),而根本不输入第二个for循环。我知道它与数组和JSON对象有关,但我无法让它工作


有帮助吗?

$obj->result[0]
是一个对象;这就是为什么
echo
不起作用的原因。试试这个:
echo$obj->result[0]->name

如果要打印名称,您可能可以尝试此方法

echo $obj->result[0]->name; // which should dereference the appropriate object.
同样在循环中,尝试此操作,因为$obj->result是数组,$obj是单个对象

if($obj && isset($obj->result) && is_array($obj->result)){
foreach ($obj->result as $key => $value) {
  var_dump ($value);
  foreach ($value as $feature => $item) {
      echo $feature.' =>' .$item;
  }
}
}
请尝试以下方法:

$json = json_decode($json);

foreach($json->result as $index => $item) {
  // $item is an object now, you can access $item->name, $item->title, etc.
}

如果您想循环其中的每个键,可以对$key=>value的$item执行foreach

而不是
echo
尝试
var\u dump
。在递归循环中测试值类型,以便知道下一步是什么。同样,对于json_decode,如果适用,可以对数组而不是对象使用第二个参数TRUE。减少了一种类型。我个人更喜欢使用ArraySidenote:如果您发现数组更易于处理,请使用以下命令:
$json\u array=json\u decode($result,true)