Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中处理具有相同值名的JSON_Ruby On Rails_Ruby_Json_Spotify - Fatal编程技术网

Ruby on rails 如何在RubyonRails中处理具有相同值名的JSON

Ruby on rails 如何在RubyonRails中处理具有相同值名的JSON,ruby-on-rails,ruby,json,spotify,Ruby On Rails,Ruby,Json,Spotify,我从spotify API获得了以下JSON: 我需要找到一种方法来获取轨迹id,最好是所有id,但是我找不到一种方法来将id分配给变量。我只能得到第一个。在过去的两天里,我一直在研究这个问题,如果不寻求帮助就找到解决方案,我会感到非常沮丧。首先,阅读一些与Ruby相关的书籍 其次,这里是一个示例解决方案,因为您已经被困了2天。你必须因你的坚持而得到奖励!:) #假设在'result'变量中有文本格式的结果 #这意味着我们需要解析它并将其转换为ruby哈希 结果=欢迎使用stackoverfl

我从spotify API获得了以下JSON:


我需要找到一种方法来获取轨迹id,最好是所有id,但是我找不到一种方法来将id分配给变量。我只能得到第一个。在过去的两天里,我一直在研究这个问题,如果不寻求帮助就找到解决方案,我会感到非常沮丧。

首先,阅读一些与Ruby相关的书籍

其次,这里是一个示例解决方案,因为您已经被困了2天。你必须因你的坚持而得到奖励!:)

#假设在'result'变量中有文本格式的结果
#这意味着我们需要解析它并将其转换为ruby哈希

结果=欢迎使用stackoverflow,如果您需要帮助,请在问题正文中添加示例数据和相关代码,以及所需的结果。不要链接到外部源,如Pastebin或实际的API端点,因为你不应该期望有人愿意帮助你跳过一大堆障碍,这会导致链接腐烂。相关代码?要我添加GET请求吗?因为除此之外,除了search=json.parse search2=search['tracks']['items']之外没有其他方法,问题是我无法使用此方法,因为当哈希具有相同的键时,它将返回一个整数,或者我可以使用其他方法仅获取值或第一个id键和值。我没有包含任何代码,因为我愿意接受任何有用的信息。我没有包括GET请求,因为我认为它不相关。我加入了链接而不是粘贴,因为我不想删除其中的链接是的,我也没有要求或我想要一个现成的代码,我可以复制粘贴。这篇文章说我需要找到一种方法,指出我正在寻找对我的问题有帮助的信息。
# Assume you have that result in text format in `result` variable
# It means that we need to parse it and turn it into ruby hash
result =<<RESULT
  "tracks" : {
    "href" : "https://api.spotify.com/v1/search?query=don%27t+worry+be+happy&offset=0&limit=1&type=track","
...
RESULT


# Let's parse it using JSON gem
require 'json'
json = JSON.parse(result)

### If your result is already parsed into Ruby hash, then skip the above code.

unless json.dig('tracks', 'items').empty?
  json['tracks']['items'].map {|i| i['id'] }
end

# This will return an array of all track id's
 => ["4v52HuhZqVV0eNpP6vzH5I"]