From the specification:
'JSON encoding does not include a “CheckSum” field since it is unlikely to be useful at best, and likely
to be incorrect at worst (e.g. if copied over from another FIX encoding).'
The example output provided from the Java encoder includes the Checksum tag within the trailer:
...
"Trailer":{
"CheckSum": "041"
}
...
Presumably, per the spec, the trailer section of JSON-encoded FIX messages will be empty unless Signature or SignatureLength exist as tags within the encoded message.