data.json

Improper parsing of numbers - leading zeroes should be disallowed

Details

  • Type: Defect Defect
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None

Description

Handling of numeric literals doesn't perform according to the JSON spec.

Example:

(require '[clojure.data.json :as json])
(json/read-str "0123")
(json/read-str "{\"num\": 0123}")

Both of these examples parse the number as 123. According to the spec, this should actually be an invalid number and throw an exception. NB this restriction does not seem to apply to a number in the exponent, so a number like 1e0003 should be parsed as 1000.0. We handle this case correctly now.

Activity

Hide
Matthew Gilliard added a comment -

Fix + Tests. Feedback welcome.

Show
Matthew Gilliard added a comment - Fix + Tests. Feedback welcome.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: