#10336 closed bug (invalid)
parseJSON validation is inaccurate
Reported by: | anonymous | Owned by: | |
---|---|---|---|
Priority: | low | Milestone: | None |
Component: | core | Version: | 1.6.4 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
The current method for validating JSON for parsing is inaccurate and buggy. For example, jQuery.parseJSON("{,}") passes the existing test, and results in a syntax error when trying to eval it, where jquery should handle the error.
This patch introduces an alternative validation method that really ensures that the input is valid JSON before evaluating it:
https://github.com/jquery/jquery/pull/516
JQuery 1.4.1+ affected on all platforms
Change History (5)
comment:1 Changed 12 years ago by
Component: | unfiled → core |
---|---|
Priority: | undecided → low |
Resolution: | → invalid |
Status: | new → closed |
comment:2 Changed 12 years ago by
The behavior is inconsistent, though, because the method of validation is bogus.
comment:4 Changed 11 years ago by
But why is it okay that {"a":5,} produces a different exception than {'a':5,}? It means that code handling the resulting exceptions has to handle two cases for the same error.
comment:5 Changed 11 years ago by
They both produce an "unexpected token" syntax error when using native JSON.parse()
That error is exactly correct, "{,}" is not valid
http://gyazo.com/88815ad637cc0fccc9ee58751c45d0f9.png http://gyazo.com/fe06c62923b84b8b5a5aa8939fd43fb9.png
jsonlint... http://gyazo.com/a604c8ccff158be76b83288b337d2a0c.png