См. Пример ниже, чтобы узнать, как поступить в вашей ситуации.
class Person implements JsonSerializable
{
protected $id;
protected $name;
public function __construct(array $data)
{
$this->id = $data['id'];
$this->name = $data['name'];
}
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function jsonSerialize()
{
return
[
'id' => $this->getId(),
'name' => $this->getName()
];
}
}
$person = new Person(array('id' => 1, 'name' => 'Amir'));
echo json_encode($person,JSON_FORCE_OBJECT);
Чтобы получить результат json, который является строкой, чтобы иметь возможность выполнять итерацию, выполните что-то вроде:
$json = json_decode($json);
L oop через объект и получить его члены с помощью чего-то вроде:
foreach($json as $obj){
echo $obj->name;
.....
}
Надеюсь, этот рабочий процесс поможет вам достичь желаемого.