簡體   English   中英

如何以正確的格式寫入JSON文件

[英]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上執行此操作:

  1. 我安裝了Ubuntu軟件包ruby-json:

     apt-get install ruby-json 
  2. 我在${HOME}/rubybin/jsonDEMO編寫了腳本

  3. $HOME/.bashrc包括:

     ${HOME}/rubybin:${PATH} 

(在這種情況下,我還在bash命令行上輸入了以上內容。)

然后,當我在命令行上輸入時它就起作用了:

jsonDemo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM