Son: A minimal subset of JSON for machine-to-machine communication
The github for this project doesn&#x27;t use this terminology, but the keyword here is &#x27;<i>canonicalization</i>&#x27;. That&#x27;s the process in which you transform a document which can take any number of forms to a specific document that only takes one form.<p>You do this to ensure that documents that contain the same &quot;information&quot; will look identical on the wire, not just after-the-fact once you&#x27;ve processed them into some execution-specific data structure.<p>For example, X.509 certificates use ASN.1 DER, a restricted subset of ASN.1 BER where each value takes a deterministic form, so that two certificates that contain the same information will look identical when serialized into bytes. This is a stricter application of ASN.1, while, say, when you talk to a directory service over LDAP, you can speak BER, the looser encoding, because the exact bytes by which you&#x27;re making yourself understood don&#x27;t really matter.<p>Son is a canonicalized form of JSON, and the author maintains a page of JSON subsets and supersets [1] that lists two other canonicalized encodings, both of them containing silly flaws in their design. Son is a better effort.<p>[1] <a href="https:&#x2F;&#x2F;housejeffries.com&#x2F;page&#x2F;7" rel="nofollow">https:&#x2F;&#x2F;housejeffries.com&#x2F;page&#x2F;7</a>