如何计算Ruby / Rails中的JSON对象数

时间:2014-09-20 23:45:00

标签: ruby-on-rails ruby

Ruby中的一个“一般”如何计算以下格式(root,unrooted)中JSON的对象数量?一般来说,我的意思是元素可能不同(“标题”,例如被称为其他东西)。

没有root:

{
    [
      { "title": "Post 1", "body": "Hello!" },
      { "title": "Post 2", "body": "Goodbye!" }
    ]
}

root wrapped:

{
  "posts":
    [
      { "title": "Post 1", "body": "Hello!" },
      { "title": "Post 2", "body": "Goodbye!" }
    ]
}

1 个答案:

答案 0 :(得分:13)

首先,without root代码不是有效的json格式。没有周围的花括号,所以我认为它应该是这样的。

在第一种情况下:

json = '[
  { "title": "Post 1", "body": "Hello!" },
  { "title": "Post 2", "body": "Goodbye!" }
]'

require 'json'
ary = JSON.parse(json)
puts ary.count

另一种情况没有太大区别:

json = '{
  "posts":
    [
      { "title": "Post 1", "body": "Hello!" },
      { "title": "Post 2", "body": "Goodbye!" }
    ]
}')

require 'json'
hash = JSON.parse(json)
puts hash['posts'].count