0

我正在尝试在 Dashing 中创建一个列表,并且我设法引入了我的外部 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"
}

小部件的输出当前如下所示:

  1. 迈克乔恩在这里,出去

如何正确遍历解析的 jsonresponse并将其传递给send_event?

只是回答马特的问题:

所以我需要一个“whosHere”事件,其中包含为 List 小部件格式化的 JSON 文件中的所有值 - 它需要将 JSON 格式化为标签:X,值:Y。

所以我需要它做的是将它格式化为一个 json 数组:

label: "Mike", value: "Here"
label: "Jon", value: "Out"

现在它存储在哪里:

label: Mike,Jon, value:Here,out
4

1 回答 1

0

您可以使用collect来完成此操作。它遍历一个集合并返回一个Array其中每个元素都是一个块的结果。

name_list = response.collect { |(name, status)| { :label => name, :value => status } }

# [{:label=>"Mike", :value=>"Here"}, {:label=>"Jon", :value=>"Out"}]
于 2015-04-07T03:08:41.243 回答