On Fri, Mar 16, 2018 at 9:42 PM, Anders Rundgren < [email protected]> wrote:
> > > On my part I added canonicalization to my ES6.JSON compliant Java-based > JSON tools. A single line did 99% of the job: > https://github.com/cyberphone/openkeystore/blob/jose-compati > ble/library/src/org/webpki/json/JSONObjectWriter.java#L928 > > for (String property : canonicalized ? new > TreeSet<String>(object.properties.keySet()) > : object.properties.keySet()) { > If this is what you want then can't you just use a replacer to substitute a record with sorted keys? JSON.canonicalize = (value) => JSON.stringify(value, (_, value) => { if (value && typeof value === 'object' && !Array.isArray(value)) { const withSortedKeys = {} const keys = Object.getOwnPropertyNames(value) keys.sort() keys.forEach(key => withSortedKeys[key] = value[key]) value = withSortedKeys } return value })
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

