Ты просто там.Посмотрите на get_object_vars в сочетании с json_encode, и вы получите все, что вам нужно.Выполнение:
json_encode(get_object_vars($error));
должно возвращать именно то, что вы ищете.
Комментарии вызывали уважение get_object_vars к видимости, поэтому подумайте о том, чтобы сделать что-то подобное в вашем классе:
public function expose() {
return get_object_vars($this);
}
А затем изменив предыдущее предложение на:
json_encode($error->expose());
Это должно решить проблемы с видимостью.