Skip to content

Instantly share code, notes, and snippets.

@seanmorton
Last active November 28, 2018 21:43
Show Gist options
  • Save seanmorton/583ec91877f5be2b0b67912c5f93523c to your computer and use it in GitHub Desktop.
Save seanmorton/583ec91877f5be2b0b67912c5f93523c to your computer and use it in GitHub Desktop.
JSON to CSV ruby script
require 'json'
require 'csv'
def json_to_csv(json)
header = %w[key value]
data = JSON.parse(json)
csv = CSV.generate do |csv_body|
csv_body << header
data.each do |k, v|
add_row(csv_body, k, v)
end
end
csv
end
def add_row(csv_body, k, v)
unless v.is_a?(Hash)
csv_body << [k, v]
return
end
v.each do |k1, v1|
nested_key = "#{k}.#{k1}"
add_row(csv_body, nested_key, v1)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment