How to write to a JSON file in the correct format How to write to a JSON file in the correct format ruby ruby

How to write to a JSON file in the correct format


Require the JSON library, and use to_json.

require 'json'tempHash = {    "key_a" => "val_a",    "key_b" => "val_b"}File.open("public/temp.json","w") do |f|  f.write(tempHash.to_json)end

Your temp.json file now looks like:

{"key_a":"val_a","key_b":"val_b"}


With formatting

require 'json'tempHash = {    "key_a" => "val_a",    "key_b" => "val_b"}File.open("public/temp.json","w") do |f|  f.write(JSON.pretty_generate(tempHash))end

Output

{    "key_a":"val_a",    "key_b":"val_b"}


This question is for ruby 1.8 but it still comes on top when googling.

in ruby >= 1.9 you can use

File.write("public/temp.json",tempHash.to_json)

other than what mentioned in other answers, in ruby 1.8 you can also use one liner form

File.open("public/temp.json","w"){ |f| f.write tempHash.to_json }