ruby-on-rails - 在 Rails 中使用 `JSON.decode` 的结果

标签 ruby-on-rails ruby json get

所以我在我的 Controller 中有一个对 API 执行 get_response 的操作:

  def memeapi
    require "net/http"
    require "uri"

    @meme = Meme.new(params[:meme])

    url = "http://version1.api.memegenerator.net/Instance_Create?username=apigen&password=SECRET&languageCode=en&generatorID=#{@meme.memeid}&imageID=#{@meme.imgid}&text0=#{@meme.text0}&text1=#{@meme.text1}"
    resp = Net::HTTP.get_response(URI.parse(url))
    data = resp.body
    # I want to convert it to the Rails data structure - a hash
    result = ActiveSupport::JSON.decode(data)


  end

好的,但现在我想取回信息,用它来创建另一个对象,但我什至无法格式化我收到的信息,谁能告诉我我做错了什么,我错过了什么?

我希望能够从 get_response 访问信息... 谢谢。

这是JSON结构

{"success":true,"result":{"generatorID":45,"displayName":"Insanity Wolf","urlName":"Insanity-Wolf","totalVotesScore":0,"imageUrl":"/cache/images/400x/0/0/20.jpg","instanceID":13226270,"text0":"push","text1":null,"instanceImageUrl":"/cache/instances/400x/12/12916/13226270.jpg","instanceUrl":"http://memegenerator.net/instance/13226270"}}

顺便说一句,我不想​​保存所有字段...

最佳答案

result 在代码中的 JSON.decode 之后看起来像这样。

{ 
  'success' => true,
  'result'  => {
    "generatorID"      => 45,
    "displayName"      => "Insanity Wolf",
    "urlName"          => "Insanity-Wolf",
    "totalVotesScore"  => 0,
    "imageUrl"         => "/cache/images/400x/0/0/20.jpg",
    "instanceID"       => 13226270,
    "text0"            => "push",
    "text1"            => nil,
    "instanceImageUrl" => "/cache/instances/400x/12/12916/13226270.jpg",
    "instanceUrl"      => "http://memegenerator.net/instance/13226270"
  }
}

这里有一个嵌套的散列(散列作为散列的一部分),您可以像这样访问它:

image_url = result['result']['imageUrl']   # => "/cache/images/400x/0/0/20.jpg"

我无法猜测您究竟想用这些信息做什么。也许您想更新您创建的 Meme 对象?

@meme.url = image_url

关于ruby-on-rails - 在 Rails 中使用 `JSON.decode` 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865079/

相关文章:

ruby-on-rails - RoR Mailboxer Monkey Patch 只工作了几次

ruby-on-rails - Heroku 部署上的 RAILS_MASTER_KEY 错误

ruby-on-rails - Selenium 网络驱动程序

ruby - 试图学习 ruby​​ 的前 php 用户......非常艰难

c++ - 如何在Mac OS X上安装ruby-filemagic?

javascript - 如何像这样重定向到其他网站

ruby-on-rails - 在 Rails 中,你可以设置 flash[ :error] when calling link_to?

json - 访问 JSON 数据

java - 如何在两个 Activity 之间显示不同的 json 数据?

ruby - 如何检查字符串是否包含 ASCII 码