switch to JSON::MaybeXS, and skip the extra encoding step