Sometimes log_params isn't serialized. If keys aren't specified, I would think this would make it harder sometimes to tell at a glance what the data represents. If keys are specified, though, then one needs to extract the data using, e.g., substr().
Three examples I notice are changing visibility of revisions and log events; merging histories; and blocking users (for more details, see [[mw:Manual:Log actions]]).
When you change visibility of a revision, the raw text inserted into log_params is, e.g.:
Likewise, merging histories generates, e.g.:
Blocking a user is the same way; something like the following gets inserted: