JSON decode and cast to custom type-hinted classes