猿问

如何使用Ruby on Rails解析JSON?

如何使用Ruby on Rails解析JSON?

我正在寻找一种简单的方法来解析JSON,提取一个值并将其写入Rails中的数据库。

特别是我正在寻找的是一种shortUrl从bit.ly API返回的JSON中提取的方法:

{
  "errorCode": 0,
  "errorMessage": "",
  "results":
  {
    "http://www.foo.com":
    {
       "hash": "e5TEd",
       "shortKeywordUrl": "",
       "shortUrl": "http://bit.ly/1a0p8G",
       "userHash": "1a0p8G"
    }
  },
  "statusCode": "OK"}

然后使用shortUrl并将其写入与long URL关联的ActiveRecord对象。

这是我完全可以在概念中思考的事情之一,当我坐下来执行时,我意识到我有很多需要学习的东西。


慕村9548890
浏览 924回答 3
3回答

阿晨1998

这些答案有点过时了。所以我给你:hash = JSON.parse stringRails的应该会自动加载json模块你,所以你并不需要添加require 'json'。

qq_花开花谢_0

在Rails中解析JSON非常简单:parsed_json = ActiveSupport::JSON.decode(your_json_string)假设,您想要与shortUrl关联的对象是Site对象,它有两个属性 - short_url和long_url。要获得shortUrl并将其与相应的Site对象相关联,您可以执行以下操作:parsed_json["results"].each do |longUrl, convertedUrl|   site = Site.find_by_long_url(longUrl)   site.short_url = convertedUrl["shortUrl"]   site.saveend

慕村225694

要检查的一个站点是Ruby的JSON实现。这个站点提供了一个可以为更快的C扩展变体安装的gem。根据他们的文档页面的基准,他们声称它比它快21.500倍ActiveSupport::JSON.decode代码与Milan Novota对这个gem的答案相同,但解析只是:parsed_json = JSON(your_json_string)
随时随地看视频慕课网APP

相关分类

Ruby
我要回答