# Result #valid #"{\"k\":\"vvv\"}" #"{\"k\":\"vvv\"}" #"{\"k\":\"vvv\"}" #invalid utf-8 with US-ASCII #"JSON: error: \"\\xFF\" from ASCII-8BIT to UTF-8" #"{\"k\":\"v\xFFvv\"}" #"{\"k\":\"v\xFFvv\"}" require 'json' require 'oj' require 'yajl' json = {"k" => "vvv"} puts "valid" begin p JSON.dump(json) rescue => e p "JSON: error: #{e}" end begin p Oj.dump(json) rescue => e p "Oj: error: #{e}" end begin p Yajl.dump(json) rescue => e p "Yajl: error: #{e}" end json = {"k" => "v#{0xff.chr}vv"} puts "invalid utf-8 with US-ASCII" begin p JSON.dump(json) rescue => e p "JSON: error: #{e}" end begin p Oj.dump(json) rescue => e p "Oj: error: #{e}" end begin p Yajl.dump(json) rescue => e p "Yajl: error: #{e}" end