2
잠시 동안 JSON.parse를 사용했으며 방금 최신 버전으로 업데이트했습니다.`JSON.parse`가 예외를 던지지 않는 이유는 무엇입니까?
다음 오류가 발생합니다.
ParserError를 던지는 대신 nil을 반환하도록 기능이 업데이트 되었습니까? 당신이 밖으로 확인하여 확인할 수 있습니다 기능을 것으로 예상된다 JSON.parse("null")
이 nil
를 반환, 그래서
A JSON value MUST be an object, array, number, or string, or one of the following three literal names:
false null true
The literal names MUST be lowercase. No other literal names are allowed.
:
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 >
[버그 리포트] (https://bugs.ruby-lang.org/issues/10143)는 RFC 7159에 부합하지만'JSON :: ParserError :'오류를 발생시키는 일부'parse' 표현을 기술하고 있습니다. JSON.parse ('this is a string'),'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) 모든 값을 루비 문자열로 전달해야하므로 입력 형식을 지정하는 방법을 알려줍니다. IRB를 열고 다음을 테스트합니다 :'JSON.parse (this is string " ') =>"이것은 문자열 ",'JSON.parse ('42') => 42','JSON.parse ('true') => '를 선택하십시오. –
이해합니다. 감사. –