I think your read is correct: QJ/KJ. Read this as he (or she?) has something, but not confident and so calling only to minimize potential losses. I think your flop cbet was correct, but maybe you needed to bet the turn to get more information and make him pay and not give him the odds
to see the river and hit the flush draw. If your read is correct, then I think your play OK (projecting weakness to pick up the value bet on the river), but again, if he was drawing fo rhte flush, then you lucked out.