Best way to create outbound mqtt message with json content?

Yes, this is possible and encouraged. I recommend looking at Design Pattern: Human Readable Names in Messages and Design Pattern: Associated Items for ways to achieve this.