我应该如何解析具有以下格式的txt文件,以便在ruby中将其读作json?
谢谢。
{"sales": "52,000,000", "id": 12, "comp_name": "FriedFood"}
{"sales": "51,000,000", "id": 1, "comp_name": "Copley"}
{"sales": "54,000,000", "id": 2, "comp_name": "tony's"}
{"sales": "52,000,789", "id": 3, "comp_name": "J&J"}
答案 0 :(得分:2)
将文件读作JSON
require "json"
lines = File.open("filename.txt").read.split("}\n").join("},")+"}"
data = JSON.parse([lines].to_s)
<强>更新强>: 这是对代码的解释。
parse
函数接受JSON字符串。在示例中,在每个JSON对象之后都有新行。
函数split("}\n").join("}")
将从txt文件字符串中删除新行。之后,您需要添加}
来关闭JSON文件。
最后,所有这些对象都应该在数组中排序,以创建有效的JSON文件 - [lines].to_s
答案 1 :(得分:1)
将每一行解析为JSON对象,如下所示:
require 'json'
items = File.open('tmp.json', 'r').each_line.map { |l| JSON.parse(l) }
puts items.to_s
编辑:修改为使用地图,基于以下评论。