When flying thru JNB, I typically use City Lodge Hotel right in the airport.  It is one of two hotels actually in the airport itself, and it is 25% the price of the other one. It's a very nice hotel, the restaurant is great and extremely reasonable, and it's very convenient compared to travelling to one of the safari lodges.  I don't care for the "new" ownership of the Afton since it sold several years ago, so I would never stay there again anyway. The other hotel, where I had booked last month but changed to the CIty Lodge at the last minute (because my traveling companion was stressed out at the thought of traveling outside the airport to another hotel), was the Raddison Hotel & Convention Center.  The Raddison actually has one more star in its rating, it's half the price (about $61 was my rate) of City Lodge Hotel ($125), and it's only a short drive away (and they have an airport shuttle).