ruby - 使用 JSON 将哈希数组写入文件?

标签 ruby arrays json hashmap

目前我正在这样做:

badLinks = Array.new
badLinksFile = File.new(arrayFilePath + 'badLinks.txt', 'w+')
badLinksFile.puts badLinks.to_json

数组 badLinks 包含散列并且是:

brokenLink = Hash.new
brokenLink[:onPage] = @lastPage
brokenLink[:link] = @nextPage
badLinks.push(brokenLink)

当我查看文件时,它是空的。这应该工作吗?

最佳答案

需要检查的几件事:

badLinksFile = File.new(arrayFilePath + 'badLinks.txt', 'w+')

可能应该是 'w' 而不是 'w+'。来自 IO 文档:

  "w"  |  Write-only, truncates existing file
       |  to zero length or creates a new file for writing.
  -----+--------------------------------------------------------
  "w+" |  Read-write, truncates existing file to zero length
       |  or creates a new file for reading and writing.

I'd write the code more like this:

bad_links = []

brokenLink = {
  :onPage => @lastPage,
  :link => @nextPage
}

bad_links << brokenLink

File.write(arrayFilePath + 'badLinks.txt', bad_links.to_json)

这没有经过测试,但它更有意义,并且是惯用的 Ruby。

关于ruby - 使用 JSON 将哈希数组写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14988742/

相关文章:

javascript - JSON 数据未通过 put 请求更新

javascript - 在 angularJs 中返回请求响应

ruby-on-rails - Rails # 在 HTML href 中注释掉该行

ruby-on-rails - 为什么使用 Proc.new 来调用 Rails 回调中的方法?

MySQL:日志显示记录已存在

RUBY (Errno::ENOENT),没有这样的文件或目录@dir_s_mkdir

java - 字符串数组拆分而不删除

arrays - "$scalar = @array[n]"的后果是什么?

c++ - c++函数中 "Unreachable code"的解释

python - python 从json数组中删除多余的键值