Skip to content

Commit

Permalink
Cope with negative-zero, and give an example of negative-zero and a l…
Browse files Browse the repository at this point in the history
…arge power of ten
  • Loading branch information
tonyg committed Jun 14, 2023
1 parent 49957be commit 514de5e
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion content/appendices.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ To ensure that all implementations use the same JSON encoding we define
We define this encoding for a value to be the shortest
UTF-8 JSON encoding with dictionary keys lexicographically sorted by
Unicode codepoint. Numbers in the JSON must be integers in the range
`[-(2**53)+1, (2**53)-1]`.
`[-(2**53)+1, (2**53)-1]`, represented without exponents or decimal
places, and negative zero `-0` MUST NOT appear.

We pick UTF-8 as the encoding as it should be available to all platforms
and JSON received from the network is likely to be already encoded using
Expand Down Expand Up @@ -304,6 +305,21 @@ The following canonical JSON should be produced:
{"a":null}
```

Given the following JSON object:

```json
{
"a": -0,
"b": 1e10
}
```

The following canonical JSON should be produced:

```json
{"a":0,"b":10000000000}
```

### Signing Details

JSON is signed by encoding the JSON object without `signatures` or keys
Expand Down

0 comments on commit 514de5e

Please sign in to comment.