json编码doctrine对象中的对象数组

I have following doctrine model..

House doctrine entity

// Below are not my real object. These are example similar to my originals

// Doctrine entity
class House implements JsonSerializable {
  // Doctrine properties
  protected $id;  // doctrine id field
  protected $rooms; // rooms : one-to-many relation to Room doctrine entity.

  // serializer
  public function jsonSerialize() {
    return [
      'id' => $this->GetId(),
      'rooms' => $this->GetRooms(),
    ];
  }

  // Getters & setters.
  public GetId() { return $this->id; }
  public SetId($id) { $this->id = $id }

  public GetRooms() { return $this->rooms; }
  public SetRooms($rooms) { $this->rooms = $rooms; }
}

Following is Room entity

// Doctrine entity
class Room implements JsonSerializable {
  protected $id; // doctrine id field

  // serializer
  public function jsonSerialize() {
    return [
      'id' => $this->GetId(),
    ];
  }

  // Getters & setters.
  public GetId() { return $this->id; }
  public SetId($id) { $this->id = $id }
}

Problem ..

When I fetch one House entity using doctrine query, it fetches along with rooms objects. But, if I encoded them with json_encode() the values for rooms seen emtpy.

*Query.. *

$qb->select('h', 'r')
  ->from('House', 'h')
  ->where('id = ?1')
  ->leftJoin('h.rooms', 'r')
  ->setParameter('1', $houseId);

If I loop through the result set and print the individual item (including Room object within House) all properties print well. I tried with Zend\Json\Json::encode() as well. Still the rooms property is empty.

How can I 'json encode' to get the object array within the object to be serialized? Whats the trick?

I found the solution: 'rooms' => $this->GetRooms()->toArray() That will work, because we need an Array, not an Array collection