JSON encodes numbers differently than strings. JSON::PP uses B to peek at the internals of scalars to figure out how the value of the scalar is stored to guess if it's more appropriate to store a scalar as a string or as a number.
You could create a copy of JSON::PP that encodes everything as strings, removing the need for B. (Scalar::Util's reftype would do for the other uses of B, and ref could be used if even that's not available.)
An alternative would be to install JSON::XS on one machine and copy the installed files over. That would require a machine with the same architecture and Perl version as the target. The perl on the source would have to be built with the same options as the perl on the target.