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!" }
]
}
答案 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