Cities revolt because of cultural pressure, not because they're unhappy. You should build cultural buildings like Theater, Monument, etc. in your city.
Usually culturally pressured cities are territorially pressured as well, being surrounded by your opponents' land. But this doesn't apply in the case of cultural pressure by a vassal.