Converting to JSON is an act of I/O.

My point was that throwing and catching RTE is dubious. You only want to do
that sort of thing when 1) you never expect it to happen, or 2) you have a
method that gets used in a lot of places where exceptions never happen and
a few places where it may happen.