JSON to CSV Ruby Script

Spent a good 5 minutes trying to dig up a small JSON to CSV ruby script on google but couldn't find anything! So i wrote my own small script in Ruby. Hope this saves someone 5 minutes!

FORMAT

[{"first":"Richard", "last":"Ramsden"}, {"first":"Steven", "last":"Ramsden"}]

 

JSON to CSV

require 'json'
raise Exception, 'you must provide a json file' unless ARGV[0]

json = JSON.parse(File.open(ARGV[0]).read)
puts json.first.collect {|k,v| k}.join(',')
puts json.collect {|node| "#{node.collect{|k,v| v}.join(',')}\n"}.join

 

CSV to JSON

require 'rubygems'
require 'json'

file = File.open("sample.csv", "r")

# get header
keys = file.readline().chomp!.split(",")
values = []
result = []

# parse values
file.each_line do | line |
  iter = 0
  assoc = {}
  line.chomp.split(",").each do |v|
    assoc[keys[iter]] = v
    iter += 1
  end
  result.push(assoc)
end

puts result.to_json

Go Back



Comment