0

我有一个包含 json 格式的信息(新闻提要)的对象,如下所示:

def index
@news_feed = FeedDetail.find(:all)
@to_return = "<h3>The RSS Feed</h3>"
@news_feed.items.each_with_index do |item, i|
    to_return += "#{i+1}.#{item.title}<br/>"
    end

    render :text => @to_return
 end

我只想显示该 json 数组中的特定值,例如标题描述等。当我直接渲染 @news_feed 对象时,它会给出这个

[{
    "feed_detail":{
        "author":null,
        "category":[],
        "comments":null,
        "converter":null,
        "description":"SUNY Levin Institute, Empire State Development Facilitate Collaboration to Drive Economic Opportunities Across New York State",
        "do_validate":false,
        "enclosure":null,
        "guid":null,
        "link":"http://www.suny.edu/sunynews/News.cfm?filname=2012-06-20-LevinConferenceRelease.htm",
        "parent":null,
        "pubDate":"2012-06-20T23:53:00+05:30",
        "source":null,
        "title":"SUNY Levin Institute, Empire State Development Facilitate Collaboration to Drive Economic Opportunities Across New York State"
    }
}]

当迭代 json 对象时,它会给出 - 未定义的方法项。我想要的只是从该数组中获取特定的值。我也使用了 JSON.parse() 方法,但它说不能将数组转换为字符串。

我该怎么做,有什么想法吗?

4

1 回答 1

1

您需要先解析json:

@news_feed = JSON.parse(FeedDetail.find(:all))

然后你可以像数组和哈希一样访问它:

@news_feed.each_with_index do |item, i|
  to_return += "#{i+1} #{item["feed_detail"]["title"]}<br/>"
end

在 ruby​​ 中,您可以使用与javascript[]不同的方式访问子元素。.您的示例 json 没有名为 items 的元素,因此我删除了该部分。 each_with_index将每条记录放入item变量中,然后您必须"feed_detail"在获取详细信息之前引用键。

于 2012-06-21T13:29:37.060 回答