You didn't say which cabin you are flying in. If in J then it's an easy call to take KL as the 777 is much more comfortable than the AF388.
If in Y then it may not matter so much but I still like KL over AF.
The other factor is timing. KL is a day flight and AF is overnight. Unless you are staying in JNB the whole time then that means getting to a hotel in JNB around 11pm, Consider the intercontinental at JNB if you need a local hotel for one night.