I'm a South African now living in San Francisco. Its a great country to visit - I'd be happy to answer questions.
On weather:
Johannesburg gets cold over night in winter (usually some frost over night) but the days are usually clear and warm enough for a light jacket. Unlikely to have rain.
Cape Town can be horrible. Likely to get rain, but you could be lucky. I suggest a wind break that will also keep the rain off. It will be cold but not too bad.
July is the very best time to visit the game reserves - mild weather and safer for Malaria. Expect shorts and T shirt weather is the North East, but have a light jacket ready in case.
You will have an amazing time.

You don't need long in Johannesburg - 1-2 days. Heada for the game parks and/or Cape Town. Lots to do in Cape Town.

Try some Biltong!