2
我们已经使用JSON.parse一段时间了,我们只是更新到最新版本。为什么`JSON.parse`不抛出异常?
我们收到以下错误消息。
是否已将功能更新为返回nil而不是抛出ParserError?
2.3.0 :001 > gem 'json', '2.0.2'
=> true
2.3.0 :002 > require 'json'
=> true
2.3.0 :003 > JSON.parse("null")
=> nil
2.3.0 :001 > gem 'json', '1.8.3'
=> true
2.3.0 :003 > require 'json'
=> true
2.3.0 :004 > JSON.parse("null")
JSON::ParserError: 784: unexpected token at 'null'
from /Users/ryannealmes/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/json/common.rb:156:in `parse'
from /Users/ryannealmes/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/json/common.rb:156:in `parse'
from (irb):4
from /Users/ryannealmes/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
2.3.0 :005 >
这个[bug报告](https://bugs.ruby-lang.org/issues/10143)指出符合RFC 7159的一些'parse'表达式,但引发了'JSON :: ParserError:'错误。我确认'JSON.parse('这是一个字符串')','JSON.parse(42)'和'JSON.parse(true)'都引发异常(对于Ruby 2.3.0/JSON 2.0.2 :) ,但'JSON.parse(“null”)#=> nil' –
@CarySwoveland检查[测试套件的链接](https://github.com/flori/json/blob/master/tests/json_parser_test.rb #L43)如何格式化输入,因为所有值都需要作为Ruby字符串传入。打开IRB并测试以下内容:'JSON.parse('“这是一个字符串”')=>“这是一个字符串”',''JSON.parse('42')=> 42','JSON.parse ('true')=> true'。 –
我明白了。谢谢。 –