Ruby解析JSON而不打印结果

时间:2015-02-10 23:18:46

标签: ruby json parsing

我正在将文件input.json解析为类似的哈希

input_object = JSON.parse(File.read('input.json'))

当我在irb或运行ruby script.rb中运行脚本时,我运行它的终端开始打印对象。这通常不是问题,但input.json是一个大文件,打印可能需要10~20分钟。有没有办法可以默默地做到这一点?

更新:即使使用irb_context.echo = false,也会打印出来。这意味着设置input_object =对象未被打印。

1 个答案:

答案 0 :(得分:2)

Ruby显示结果,这就是IRB打印json的原因。

有一个典型的Ruby IRB成语可以附加任何短项,如下所示:

input_object = JSON.parse(File.read('input.json')); 0

附加的0使IRB打印0而不是长json。

对于您的脚本,可能是打印JSON,因为JSON解析器遇到了错误,您所看到的是异常调试消息。

尝试包装解析:

begin
  input_object = JSON.parse(File.read('input.json'))
rescue
  raise "JSON parse error!"
end

它是否仍会打印JSON?

如果是这样,请尝试使脚本可执行:

  1. 将脚本的第一行设为:

    #!/usr/bin/env ruby
    
  2. 将最后一行设为:

    exit 0
    
  3. 使其可执行:

    chmod u+x script.rb
    
  4. 运行它:

    ./script.rb
    
  5. 它是否仍会打印JSON?