use*_*092 5 ruby ruby-on-rails
如何在Ruby中"通用"计算以下格式(root,unrooted)中JSON的对象数量?一般来说,我的意思是元素可能不同("标题",例如被称为其他东西).
没有root:
{
[
{ "title": "Post 1", "body": "Hello!" },
{ "title": "Post 2", "body": "Goodbye!" }
]
}
Run Code Online (Sandbox Code Playgroud)
root包装:
{
"posts":
[
{ "title": "Post 1", "body": "Hello!" },
{ "title": "Post 2", "body": "Goodbye!" }
]
}
Run Code Online (Sandbox Code Playgroud)
Bro*_*tse 14
首先,without root代码不是有效的json格式.它没有周围的花括号,所以我认为它应该如何.
在第一种情况下:
json = '[
{ "title": "Post 1", "body": "Hello!" },
{ "title": "Post 2", "body": "Goodbye!" }
]'
require 'json'
ary = JSON.parse(json)
puts ary.count
Run Code Online (Sandbox Code Playgroud)
另一种情况没有太大区别:
json = '{
"posts":
[
{ "title": "Post 1", "body": "Hello!" },
{ "title": "Post 2", "body": "Goodbye!" }
]
}')
require 'json'
hash = JSON.parse(json)
puts hash['posts'].count
Run Code Online (Sandbox Code Playgroud)