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'。 –
我明白了。謝謝。 –