使用Ruby解析JSON提要以在Dashing Dashboard中使用

时间:2016-09-23 10:39:44

标签: python json ruby dashing

首先发布在这里,所以你知道,好吗?

我在服务器上使用JSON Feed在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

1 个答案:

答案 0 :(得分:1)

在python代码中,您发送JSON并添加标头。我敢打赌,在红宝石中这样做是有意义的。下面的代码是未经测试的,因为我无法测试它,但它应该引导您进入正确的方向:

#!/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