通过FasterCSV将{JSON数组转换为CSV

时间:2017-02-15 10:31:46

标签: json ruby csv parsing fastercsv

我有一个JSON数组,格式如下。

[{"Name":"Ann","Gender":"Female","Age":"20"},{"Name":"John","Gender":"Male","Age":"22"}]

我想将其转换为以下CSV格式而不打印" Key"我还希望它只打印Name值和Age值。 例如 安,20 约翰,22

我尝试使用以下代码。

#!//usr/bin/env ruby
require "rubygems"
require 'fastercsv'
require 'json'

csv_string = FasterCSV.generate({}) do |csv|
   JSON.parse(File.open("test").read).each do |hash|
    csv << hash
  end
end

puts csv_string

test包含我尝试解析的json数组。

1 个答案:

答案 0 :(得分:0)

您的JSON格式无效。有效的json格式为:

[{"Name":"Ann","Gender":"Female","Age":"20"},{"Name":"John","Gender":"Male","Age":"22"}]

试试这个:

require "rubygems"
require 'fastercsv'
require 'json'

csv_string = FasterCSV.generate({}) do |csv|
  JSON.parse(File.open("test").read).each do |hash|
    csv << [hash["Name"], hash["Age"]]
  end
end

puts csv_string