> Doing a set -> json is easy

Agreed.

> the de-serializer will not be able to distinguish what is list and what is set.

Where does de-serialization occur?  I agree we cannot do it automatically, but can we do it by hand wherever we need to?