There is a big difference and I'll try to explain it.
UDTs are awesome if you wan't "strongly typed" fields in CQL schema. You can use UDT as a part of your primary key (clustering column) as well as adding and renaming fields. Downside is that when doing selects you are always selecting the whole UDT and you cannot remove a field. Don't go too crazy with usage because they are a hell to maintain especially if same ones are used across multiple tables.
Using a serialized JSON string is good for some cases. I even heard people save compressed data into fields (protobuff) to solve their problems (I think that someone from Soundcloud was talking about this). The problem with JSON is that they are not typed and that you need additional logic on the application to handle the serialization and changes to the data. This also means that you can have variable structure and insert only the fields that you need.
At the end its about your preference as long as you understand pros and cons of both approaches.