-3
我需要一個ruby腳本的快速入門,它爲一些變量解析json文件。它在#{name}中存儲json文件中的名稱字符串,其中id是參數的輸入。Ruby在一個對象中設置參數變量
問題是我無法在對象data-on_day_you_want中設置ID參數#{b}
。如果我將它放在"#{b}"
中,它將與來自json文件的值不匹配。如果我使用281對其進行了硬編碼,則它可以很好地工作。 ps:請在下面找到json的一小部分。
#!/usr/bin/env ruby
require 'rubygems'
require 'json'
a, b = ARGV #(environment and ID arguments)
file = File.read('file.json')
data_hash = JSON.parse(file)
data_on_day_you_want = data_hash["tenantAuthzProfiles"].detect{ |h| h["id"] == #{b} } # HERE IS THE ISSUE
name = data_on_day_you_want["name"]
puts "NAME is: #{name}"
的JSON:
{
"name": "Production Environment",
"roles": ["Host Admin"],
"id": 281
}
你有什麼建議嗎?
是的,但是我希望我給腳本的值作爲參數。就像下面的例子:./script.rb環境281 ...其中281是id值。 b.to_i無法正常工作,即使我更改了數字,它也顯示出相同的名稱值...主要原因是我無法正確設置#{b}以作爲變量進行讀取。 –
對不起,隊友,您的解決方案正在工作。 ..我在錯誤的json上測試它:D ...如果你有一個鏈接或一個explotation爲什麼這個工作,爲什麼b.to_i知道我的輸入,這將是偉大的。再次感謝 –
@ VladCenan - 我已經更新了一些更詳細的解釋和解釋 –