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 呼び出しを実行して検証する必要がありますか?