我一直在完成将包含多个JSON对象的文件转换为CSV的任务。为了使事情变得更容易,我决定采取对象并尝试将它们变成一个对象,这样我就可以更容易地解析它。这是我的问题:因为数据文件只是一堆没有逗号的数组,所以我不能使用flatten方法。 数据文件如下所示:
[{"field1": "sample1", "field2":"sample2"}]
[{"field3":"sample3", "field4":"sample4"}]
正如您所看到的,它是一堆没有逗号的数组。
所以我的想法是遍历每个数组,替换"] ["使用",",然后让我的程序解析它。
所以我的目标是让文件看起来像:
[{"field1": "sample1", "field2":"sample2"}, {"field3":"sample3", "field4":"sample4"}]
我一直试图使用的代码是:
data.gsub(/\s(?=[\]\[]), ","/)
我确信这与我的Regex表达式有关。因为我试图解析&#34;] [&#34;,我已尝试使用其他正则表达式,但它们似乎都没有真正做我需要做的事情。< / p>
现在这还不行。我正在考虑尝试使用扫描或插入,但gsub似乎是删除那些内部括号并用逗号替换它们的最佳方法。
对于那些建议尝试在JSON对象上使用.foreach循环的人来说,这对我来说不起作用,因为.foreach循环不会解析同一文件中的单独对象。也许我还没有找到一种实际上适用于多个JSON对象的方法,但是如果有人有一个有效的方法,我也会试一试。
答案 0 :(得分:0)
您需要做的就是找到结束括号,然后是换行符和左括号。
data.gsub(']\n[', ',')
希望这有效!