我试图在Dashing中创建一个List并且我设法引入了我的外部JSON,但是我在迭代它以创建新的JSON数组以将其发布出去时遇到了问题到我的列表小部件。这是当前的代码:
require 'rubygems'
require 'json'
require 'pp'
name_list = Hash.new({ value: 0 })
SCHEDULER.every '10s' do
json = File.read('/Users/research/inoutdash/sweet_dashboard_project/jobs/list.json')
response = JSON.parse(json)
name_list[response] = {label: response.keys, value: response.values}
send_event('whosHere', { items: name_list.values })
puts response.keys
puts response.values
end
这是我的JSON文件,它来自:
{
"Mike":"Here",
"Jon": "Out"
}
小部件的输出目前如下所示:
如何正确迭代已解析的json response
并将其传递给send_event
?
回答马特的问题:
所以我需要的是一个' whosHere'具有为List小部件格式化的JSON文件中的所有值的事件 - 需要JSON格式化为标签:X,值:Y。
所以我需要它做的是将它格式化为json数组:
label: "Mike", value: "Here"
label: "Jon", value: "Out"
现在它存储为:
label: Mike,Jon, value:Here,out
答案 0 :(得分:0)
您可以使用collect
来完成此操作。它迭代一个集合并返回一个Array
,其中每个元素都是一个块的结果。
name_list = response.collect { |(name, status)| { :label => name, :value => status } }
# [{:label=>"Mike", :value=>"Here"}, {:label=>"Jon", :value=>"Out"}]