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 'rubygems' require 'json' require 'csv' str = File.open("data.txt", "r").read() out = File.open("sample.csv", "w") json = JSON.parse(str) # figure out key values keys = [] json[0].each { |k,v| keys.push(k) } # write header (0..keys.size).each do |i| out.write(keys[i]) out.write(",") if i < keys.size-1 end # iterate and write values json.each { |a| out.write("\n") a.each { |k,v| out.write(v) out.write(",") if k != keys.last } }
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