Skip to content

Instantly share code, notes, and snippets.

@science
Created March 20, 2015 03:25
Show Gist options
  • Save science/f0e1b3ad9c335fd6495a to your computer and use it in GitHub Desktop.
Save science/f0e1b3ad9c335fd6495a to your computer and use it in GitHub Desktop.
JSON Stream processing
require 'yajl/ffi'
json = File::open('lr-test.txt')
@parser = Yajl::FFI::Parser.new
@parser.start_document { puts "start document" }
@parser.end_document { puts "end document" }
@parser.start_object { |o|
puts "start object"
puts o.class if o
puts 'start o end'
}
@parser.end_object { |o|
puts "end object"
puts o.class if o
puts 'end o end'
}
@parser.start_array { puts "start array" }
@parser.end_array { puts "end array" }
@parser.key {|k| puts "key: #{k}" }
@parser.value {|v| puts "value: #{v}" }
while !json.eof? do
@parser << json.read(512*1024)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment