Ruby 如何从这个JSON中提取?

Ruby 如何从这个JSON中提取?,ruby,json,Ruby,Json,我试图从这个JSON中提取数据,但是当我键入[0]时,它返回“{”&如果我键入[“tweets0”],我什么也得不到。我是否遗漏了一些非常明显的东西 我使用的是Ruby&多json gem,如果这改变了什么的话 { "tweets0": [ { "content": "Test1", "time": "2015/08/16 7:43 PM" } ], "tweets1": [

我试图从这个JSON中提取数据,但是当我键入[0]时,它返回“{”&如果我键入[“tweets0”],我什么也得不到。我是否遗漏了一些非常明显的东西

我使用的是Ruby&多json gem,如果这改变了什么的话

{
    "tweets0": [
        {
            "content": "Test1",
            "time": "2015/08/16 7:43 PM"
        }
    ],
    "tweets1": [
        {
            "content": "Test2",
            "time": "2015/08/16 7:44 PM"
        }
    ],
    "tweets2": [
        {
            "content": "Test3",
            "time": "2015/08/16 7:44 PM"
        }
    ],
    "tweets3": [
        {
            "content": "Test3",
            "time": "2015/08/16 7:46 PM"
        }
    ],
    "tweets4": [
        {
            "content": "Test",
            "time": "2015/08/16 7:45 PM"
        }
    ],
    "tweets5": [
        {
            "content": "3",
            "time": "2015/08/16 7:48 PM"
        }
    ],
    "tweets6": [
        {
            "content": "3",
            "time": "2015/08/16 7:48 PM"
        }
    ],
    "tweets7": [
        {
            "content": "3213",
            "time": "2015/08/16 7:49 PM"
        }
    ],
    "tweets8": [
        {
            "content": "3213",
            "time": "2015/08/16 7:49 PM"
        }
    ],
    "tweets9": [
        {
            "content": "23",
            "time": "2015/08/16 7:50 PM"
        }
    ],
    "tweets10": [
        {
            "content": "23",
            "time": "2015/08/16 7:49 PM"
        }
    ],
    "tweets11": [
        {
            "content": "3",
            "time": "2015/08/16 7:53 PM"
        }
    ],
    "tweets12": [
        {
            "content": "34",
            "time": "2015/08/16 7:53 PM"
        }
    ],
    "tweets13": [
        {
            "content": "25",
            "time": "2015/08/16 7:53 PM"
        }
    ],
    "tweets14": [
        {
            "content": "right",
            "time": "2015/08/16 7:52 PM"
        }
    ]
}

如果[0]返回“{”,这就表明Ruby并没有将JSON视为JSON对象,而是将其视为字符串


也许您需要先
.load()
您的JSON?

为什么不使用Ruby内置的标准
JSON
库呢

require 'json'
a = JSON.parse(your_json_data)
a["tweets0"] #=> [{"content"=>"Test1", "time"=>"2015/08/16 7:43 PM"}]

一旦您使用MultiJson加载了数据

> require 'multi_json'
> json = MultiJson.load('{"tweets0": [{"content": "Test1","time": "2015/08/16 7:43 PM"}]}')
=> {"tweets0"=>[{"content"=>"Test1", "time"=>"2015/08/16 7:43 PM"}]}
然后,您可以通过名称访问哈希元素:

> json['tweets0']
=>[{"content"=>"Test1", "time"=>"2015/08/16 7:43 PM"}]
要访问阵列的元素,请执行以下操作:

> json['tweets0'].first
=> {"content"=>"Test1", "time"=>"2015/08/16 7:43 PM"}

您可以发布一段用于加载和访问数据的代码片段吗?因为stdlib的
json
库是使用纯ruby实现的,因此速度很慢。
multi_-json
尝试使用
oj
,然后回退到
yajl
,然后是
json