Yajl.load 并不总是抛出解析错误。例如:
irb(main):004:0> Yajl.load('[[],"NOOOOOOOOOOOoooooooooooo!')
=> [[]]
它只是忽略了最后那个微小的细节,并继续它到那一点。如果整个字符串都不好,我希望它抛出,就像原生 JSON.parse 方法一样:
irb(main):005:0> JSON.parse('[[],"NOOOOOOOOOOOoooooooooooo!')
JSON::ParserError: 399: unexpected token at '"NOOOOOOOOOOOoooooooooooo!'
from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/json-1.7.5/lib/json/common.rb:155:in `parse'
from /home/me/.rvm/gems/ruby-1.9.3-p392/gems/json-1.7.5/lib/json/common.rb:155:in `parse'
from (irb):5
...
有没有办法在 YAJL 中强制执行“严格”模式?或者,如果我希望确保我在合法的 JSON 字符串上进行操作,是否每次都需要通过本机 JSON.parse 调用来验证它?