Forum: Ruby-core JSON.parse can not handle tab in string

0fd80494679214743a967d583420a731?d=identicon&s=25 henrikhodne (Henrik Hodne) (Guest)
on 2013-08-08 01:15
(Received via mailing list)
Issue #8742 has been updated by henrikhodne (Henrik Hodne).

Confirm that tabs are not allowed in JSON strings according to the spec

Only characters that can be included unquoted are (({0x20}))-(({0x21})),
(({0x23}))-(({0x5B})) and (({0x5D}))-(({0x10FFFF})).

I do agree that the error message is a little confusing, though.
Bug #8742: JSON.parse can not handle tab in string

Author: joejack (Joe Jack)
Status: Open
Priority: Low
Category: lib
Target version:
ruby -v: ruby 1.9.3p194 (2012-04-20) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

The following JSON file:
  "I am tab": "  "

does not parse when running the script:
require 'json'
JSON.parse IO::read 'tab.json'

the error message is:
/usr/local/lib/ruby/1.9.1/json/common.rb:148:in `parse': 743: unexpected
token at '{ (JSON::ParserError)
        "I am tab": "   "
        from /usr/local/lib/ruby/1.9.1/json/common.rb:148:in `parse'
        from parse.rb:2:in `<main>'

Taking out the quoted tab solves the problem.
If there is a quoted tab in a file, the error message shows the entire
This topic is locked and can not be replied to.