[英]How to write to a JSON file in the correct format
我正在Ruby中創建哈希,並希望以正確的格式將其寫入JSON文件。
這是我的代碼:
tempHash = {
"key_a" => "val_a",
"key_b" => "val_b"
}
fJson = File.open("public/temp.json","w")
fJson.write(tempHash)
fJson.close
這是結果文件的內容:
key_aval_akey_bval_b
我正在使用Sinatra(不知道哪個版本)和Ruby v 1.8.7。
如何以正確的JSON格式將其寫入文件?
需要JSON庫,並使用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
您的temp.json文件現在看起來像:
{"key_a":"val_a","key_b":"val_b"}
帶有格式
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
輸出量
{
"key_a":"val_a",
"key_b":"val_b"
}
這個問題是針對ruby 1.8的,但是在谷歌搜索時它仍然是最重要的。
在紅寶石> = 1.9中可以使用
File.write("public/temp.json",tempHash.to_json)
除了在其他答案中提到的以外,在ruby 1.8中,您還可以使用一種襯里形式
File.open("public/temp.json","w"){ |f| f.write tempHash.to_json }
要在Ubuntu Linux上執行此操作:
我安裝了Ubuntu軟件包ruby-json:
apt-get install ruby-json
我在${HOME}/rubybin/jsonDEMO
編寫了腳本
$HOME/.bashrc
包括:
${HOME}/rubybin:${PATH}
(在這種情況下,我還在bash命令行上輸入了以上內容。)
然后,當我在命令行上輸入時它就起作用了:
jsonDemo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.