正在使用 Ruby 解析 JSON 供稿以用于 Dashing 仪表板

Parsing JSON feed with Ruby for use in Dashing Dashboard

首先post在这里,所以你知道,要好吗?

我正在使用服务器上的 JSON 提要在 Dashing (http://dashing.io/) 中设置仪表板,如下所示:

{  
   "error":0,
   "message_of_the_day":"Welcome!",
   "message_of_the_day_hash":"a1234567890123456789012345678901",
   "metrics":{  
      "daily":{  
         "metric1":"1m 30s",
         "metric2":160
      },
      "monthly":{  
         "metric1":"10m 30s",
         "metric2":"3803"
      }
   },

我一直在尝试从 Feed 中获取数据,并且在 Python 之前成功地做到了:

import json
import urllib2

data = {
        'region': "Europe"
}

req = urllib2.Request('http://192.168.1.2/info/handlers/handler.php')
req.add_header('Content-Type', 'application/json')

response = urllib2.urlopen(req, json.dumps(data))

print response.read()

然而我还没有成功,并且在 Ruby 中出现了很多错误。 在 Ruby 中,有人能指出正确的方向来解析这个吗? 我尝试编写一个基本脚本(保持简单并且在 Dashing 之外)不会提取任何数据。

#!/usr/bin/ruby
require 'httparty'
require 'json'

response = HTTParty.get("http://192.168.1.2/info/handlers/handler.php?region=Europe") 

json = JSON.parse(response.body)

puts json

在 python 代码中,您将发送一个 JSON 并添加一个 header。我敢打赌在 ruby 中这样做也是有意义的。下面的代码是未经测试的,因为我无法测试它,但它应该会引导你进入正确的方向:

#!/usr/bin/ruby
require 'httparty'
require 'json'

response = HTTParty.post(
  "http://192.168.1.2/info/handlers/handler.php",
  headers: {'Content-Type', 'application/json'},
  query: { data: { 'region' => "Europe" } } 
  # or maybe query: { 'region' => "Europe" }
) 

puts response.inspect