Ruby - 将txt文件解析为json

时间:2015-08-17 00:07:10

标签: ruby

我应该如何解析具有以下格式的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"}

2 个答案:

答案 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

编辑:修改为使用地图,基于以下评论。