【问题标题】:Trying to extract key value from parsed JSON in ruby尝试从 ruby​​ 中解析的 JSON 中提取键值
【发布时间】:2012-01-02 14:27:17
【问题描述】:

我正在尝试从 twitter API 解析一些 JSON 并提取一个键 (“media_url”) 的值,它是键 (“entities”) 的子键

目前为止:

url = 'https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&screen_name=print_broadcast&count=1'
response = RestClient.get(url)
data=response.body
result = JSON.parse(data)

如何从解析的 JSON 中提取键值? 我试过了

result[“entities”] 

等,但是在尝试将字符串转换为整数时出现错误...我解析的 JSON 的结果是一个数组 - 这不应该是一个哈希吗?

对不起,愚蠢的问题。

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby json twitter


    【解决方案1】:

    JSON 输出实际上是一个列表。当然,它只有一个元素,但它仍然是一个列表。

    先获取result[0],然后才能访问['entries']

    【讨论】:

    • 感谢您的回复,我现在可以使用哈希:result = JSON.parse(data) tweet_data = result[0] 但我似乎无法按名称访问键值:puts("*** OK ***") if tweet_data.has_key?(‘name’) 仍然没有输出。认为我遗漏了一些明显的东西——有什么建议吗? – Steph_1001
    • @Steph_1001 - 你试过打印出tweet_data 是什么吗?
    • @Steph_1001 - 请注意,name 键在 user 键下。如果我们首先分配tweet_user = tweet_data['user'],然后我们可以调用tweet_user['name'] :)
    • 在您的帮助下终于破解了这个问题,再次感谢。原来在散列(等)内的数组中有散列。如果有人想知道,从 twitter 帖子中提取图像 url 的神奇线是 result[0]['entities']['media'][0]['media_url’] 其中 result 是您解析的 JSON
    猜你喜欢
    • 2020-10-06
    • 2023-03-26
    • 2021-11-16
    • 2020-01-23
    • 2019-08-07
    • 2020-05-03
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多