Why storing the "valid" property? Can't you deduce this from the errorMessages property? If it's empty, then there is no error. In fact, when you will deserialize the array, this is how the check is done in the validation result (https://github.com/bakura10/zf2/blob/95af54febe08a2844f92738a94d0bd70db3af865/library/Zend/Validator/Result/ValidationResult.php#L56)