Ruby on rails 用rails解析json

Ruby on rails 用rails解析json,ruby-on-rails,ruby,json,parsing,Ruby On Rails,Ruby,Json,Parsing,我需要解析一个Json数组,这对我来说太复杂了。我试了几天,都没有成功。如果有人能帮助我,我将不胜感激。 jon是: 我想表达的观点是: 1刘易斯汉密尔顿梅赛德斯384 需要访问不同的对象,这让我抓狂 谢谢 使用openuri打开并读取远程文件,然后使用json解析它。您必须深入挖掘结果散列,才能获得驾驶员排名: require 'open-uri' require 'json' url = "http://ergast.com/api/f1/2014/driverStandings.jso

我需要解析一个Json数组,这对我来说太复杂了。我试了几天,都没有成功。如果有人能帮助我,我将不胜感激。 jon是:

我想表达的观点是:

1刘易斯汉密尔顿梅赛德斯384

需要访问不同的对象,这让我抓狂


谢谢

使用
openuri
打开并读取远程文件,然后使用
json
解析它。您必须深入挖掘结果散列,才能获得驾驶员排名:

require 'open-uri'
require 'json'

url = "http://ergast.com/api/f1/2014/driverStandings.json"
data = JSON.parse(open(url).read)
standings = data['MRData']['StandingsTable']['StandingsLists'][0]['DriverStandings']
standings.each do |driver|
  puts [driver['position'], driver['Driver']['givenName'], driver['Driver']['familyName'], driver['Constructors'][0]['name'], driver['points']].join(' ')
end
输出:

1刘易斯汉密尔顿奔驰384
2尼科·罗斯伯格·梅赛德斯317
3 Daniel Ricciardo红牛238
4瓦尔特里·博塔斯·威廉姆斯186
5塞巴斯蒂安·维特尔红牛167
6费尔南多·阿隆索·法拉利161
7菲利佩·马萨·威廉姆斯134
8 Jenson Button迈凯轮126
9尼科·胡尔肯贝格印度部队96
10塞尔吉奥·佩雷斯部队印度59
11凯文·马格努森·迈凯轮55
12 Kimi Räikkönen法拉利55
13让埃里克·韦尔涅红牛二队22
14罗曼格罗斯让莲花F1 8
15丹尼尔·克维亚特红牛二队8
16马尔多纳多牧师莲花F1 2
17 Jules Bianchi Marussia 2
18阿德里安·苏蒂尔·索伯0
19 Marcus Ericsson Caterham 0
20埃斯特班·古铁雷斯·索伯0
21 Max Chilton Marussia 0
22 Kamui Kobayashi Caterham 0
23史蒂文斯·卡特拉姆会吗
24安德烈·洛特尔·卡特拉姆0

首先,非常感谢您。在我编辑我的评论时,您更正了代码。我之前尝试的是将数据存储到数据库中。代码类似于。。。。 响应=HTTParty.get(“”) result=JSON.parse(response.body) #结果=Steam.getAll()

@members=Array.new
结果.每个do |成员|
@new_member=member.new
@新的_成员。从_json(member.to_json)
@成员们这是我现在的代码:

def index
require 'open-uri'
require 'json'

@member = Member.new 
url = "http://ergast.com/api/f1/2014/driverStandings.json"
data = JSON.parse(open(url).read)
standings = data['MRData']['StandingsTable']['StandingsLists'][0]['DriverStandings']
standings.each do |driver|
    @member.position = driver['position']
    @member.givenName = driver['Driver']['givenName']
    @member.familyName = driver['Driver']['familyName']
    @member.constructor = driver['Constructors'][0]['name']
    @member.points = driver['points']
end
    @members = Member.all
  end
end

***It doesn´t store anything and neither show in the view, which it is somehing like: 

<% @members.each do |member| %>
  <tr>
     .............
    <td><%= @member.position%>  </td>
  </tr>
<% end %>
def索引
需要“打开uri”
需要“json”
@member=member.new
url=”http://ergast.com/api/f1/2014/driverStandings.json"
data=JSON.parse(open(url.read)
排名=数据['MRData']['StandingsTable']['StandingsLists'][0]['DriverStandings']
排名。每个do |司机|
@member.position=驾驶员['position']
@member.givenName=driver['driver']['givenName']
@member.familyName=驱动程序['driver']['familyName']
@member.constructor=驱动程序['Constructors'][0]['name']
@member.points=驱动程序['points']
终止
@members=Member.all
终止
终止
***它不存储任何内容,也不显示在视图中,这类似于:
.............

您尝试过什么?解析JSON就像
需要“JSON”一样简单;data=JSON.parse(字符串)
。你到底被困在哪里了?嗨,我已经尝试了rails指南中解释的解决方案。我更正了变量名。它应该被称为
url
。你最好定期从JSON中获取信息,并将其存储在数据库中,以便检索并显示。我在另一条评论中回答了你,我不能在这里这样做。谢谢!两天以来我一直在挣扎,什么也看不见。你知道如何将其存储在数据库中吗?。
def index
require 'open-uri'
require 'json'

@member = Member.new 
url = "http://ergast.com/api/f1/2014/driverStandings.json"
data = JSON.parse(open(url).read)
standings = data['MRData']['StandingsTable']['StandingsLists'][0]['DriverStandings']
standings.each do |driver|
    @member.position = driver['position']
    @member.givenName = driver['Driver']['givenName']
    @member.familyName = driver['Driver']['familyName']
    @member.constructor = driver['Constructors'][0]['name']
    @member.points = driver['points']
end
    @members = Member.all
  end
end

***It doesn´t store anything and neither show in the view, which it is somehing like: 

<% @members.each do |member| %>
  <tr>
     .............
    <td><%= @member.position%>  </td>
  </tr>
<% end %>