Ruby 解析 JSON 而不打印结果
Ruby parse JSON without printing results
我正在将文件 input.json
解析为这样的散列
input_object = JSON.parse(File.read('input.json'))
当我 运行 脚本时,在 irb 或 运行ning ruby script.rb
中,我 运行 的终端开始打印对象。这通常不是问题,但 input.json
是一个大文件,打印可能需要 10 到 20 分钟。有什么方法可以让我默默地做到这一点吗?
更新:即使使用 irb_context.echo = false
,它也会打印。这意味着设置 input_object =
对象未被打印。
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?
如果是这样,请尝试使脚本可执行:
将脚本的第一行设为:
#!/usr/bin/env ruby
将最后一行设为:
exit 0
使其可执行:
chmod u+x script.rb
运行它:
./script.rb
是否仍然打印 JSON?
我正在将文件 input.json
解析为这样的散列
input_object = JSON.parse(File.read('input.json'))
当我 运行 脚本时,在 irb 或 运行ning ruby script.rb
中,我 运行 的终端开始打印对象。这通常不是问题,但 input.json
是一个大文件,打印可能需要 10 到 20 分钟。有什么方法可以让我默默地做到这一点吗?
更新:即使使用 irb_context.echo = false
,它也会打印。这意味着设置 input_object =
对象未被打印。
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?
如果是这样,请尝试使脚本可执行:
将脚本的第一行设为:
#!/usr/bin/env ruby
将最后一行设为:
exit 0
使其可执行:
chmod u+x script.rb
运行它:
./script.rb
是否仍然打印 JSON?