JSON::MaybeXS is what I would recommend anyone doing either reading or writing JSON in 2016.
It transparently wraps around deferring to an XS-based implementation wherever possible ( Including some XS implementations not supported by JSON.pm ), and falls back to JSON::PP nicely if no XS based implementation is available/can be installed, and allows you to absolve yourself of any political/technical consequences with having to choose a backend implementation, and allows the end user to have more control of that.
In the one corner we have Tuco, otherwise known as Marc Lehmann, and his JSON::XS. In the other corner we have Reini Urban, who seems from the photo to look a lot like Lee Van Cleef, and his Cpanel::JSON::XS. And in the other corner there is Clint Eastwood with his JSON module, buried in the grave next to Arch Stanton. And for all the people who cannot decide between these cowboys there is JSON::MaybeXS. And also JSON::Any. And JSON::XS::VersionOneAndTwo. And next week for the person who wants to make yet another one of these stupid modules, I have a suggestion for the name: JSON::GoodBadUgly.