How is it possible that the properties do not exist ? 

Wouldnt the get methods throw an error ? Other than for listing, any show operation should throw an error instead of having an "info".

Have you considered that having the if inside will result in json being printed if that's the desired output ?