Whitespace.
Prefer Json::is_posint to Json::is_unsigned.

Json::is_unsigned() means, literally, This Json is unsigned
(was constructed from an unsigned type).
Json::is_posint() means This Json is unsigned or positive.
In msgpack encoding, it is not always smart to preserve signedness
through the encoding---specifically, consider 0; the one-byte encoding
of zero is nominally signed, but one really wants to use it for
unsigned ints too.