【发布时间】:2016-12-15 21:49:51
【问题描述】:
我一直在执行将具有多个 JSON 对象的文件转换为 CSV 的任务。为了让事情变得更简单,我决定将这些对象转换为一个对象,这样我就可以更轻松地解析它。这是我的问题:由于数据文件只是一堆没有逗号的数组,我不能使用 flatten 方法。 数据文件如下所示:
[{"field1": "sample1", "field2":"sample2"}]
[{"field3":"sample3", "field4":"sample4"}]
如您所见,它是一堆数组,它们之间没有逗号。
所以我的想法是遍历每个数组,用“,”替换任何“][”实例,然后让我的程序像这样解析它。
所以我的目标是让文件看起来像:
[{"field1": "sample1", "field2":"sample2"}, {"field3":"sample3", "field4":"sample4"}]
我一直在尝试使用的代码是:
data.gsub(/\s(?=[\]\[]), ","/)
我相当肯定这与我的正则表达式有关。由于我正在尝试解析“] [”,因此我尝试使用其他正则表达式,但它们似乎都没有真正做我需要做的事情。
现在这行不通。我也在考虑尝试使用 scan 或 insert,但 gsub 似乎是删除那些内括号并用逗号替换它们的最佳方法。
对于建议尝试在 JSON 对象上使用 .foreach 循环的任何人,这对我不起作用,因为 .foreach 循环不会解析同一文件中的单独对象。也许我还没有找到一个真正适用于多个 JSON 对象的方法,但是如果有人有一个有效的方法,我也会尝试一下。
【问题讨论】:
标签: arrays json ruby regex parsing