2015-04-20 231 views
0

我不断遇到错误。从JSON中获取数据

的路径,以我的JSON数据是

["data"][i]["ip"] 

其中i是该指数。

我,以便将值存储一个列表阵列内试图

json_obj.each do |obj| 
    list << obj["data"[i]["ip"] 
end 

。我不断收到一些转换错误。有一个更好的方法吗?


uri = URI.parse("SITE") 
    http = Net::HTTP.new(uri.host, uri.port) 
    http.use_ssl = true 
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

    req = Net::HTTP::Get.new(uri.request_uri) 
    req.basic_auth('USER', 'PASS') 
    res = http.request(req) 

    json_resp = JSON.parse(res.body) 

    list = [] 

    json_resp.each do | obj | 
    print obj["data"][0]["fqdn"] 
    end 
+0

是json_obj实际上JSON或已它已经被解析?你有什么错误? – Doon

+0

你可以在ruby中使用纯json。你把它变成红宝石阵列吗?你可以发布一个例子json,你想要访问什么? – tebayoso

+1

你能发布实际的错误吗? – Sid

回答

1

应该json_obj["data"].each

json_obj是散列(或散列等反正),所以你需要通过键然后就可以访问数组json_obj [“数据”]指向和使用它的每种方法。

由于@tadman说,这个错误是Array.each不顺心一个字符串索引,而且往往发生在我身上......