2017-06-28 75 views
-3

项目数我有一个JSON对象如下:JSON - 伯爵在Ruby中

jsonobject = { 
"fruits": [ 
    { 
     "name": "A", 
     "uri": "a.com" 
    }, 
    { 
     "name": "B", 
     "uri": "b.com" 
    } 
], 
"trees": [ 
    { 
     "name": "t1", 
     "uri": "t1.com", 
     "status": null 
    }, 
    { 
     "name": "t2", 
     "uri": "t2.com", 
     "status": null 
    } 
] 
} 

如何获得在Ruby中的树/水果的数量?

+0

您可以清楚说明此代码的上下文吗? – Ursus

+0

我得到这个json对象作为HTTP GET请求的输出。现在我只想计算“水果”和“树木”内的物品数量。我使用这些名称而不是实际获得的信息。只是不透露信息。你现在可以帮忙吗? –

+0

'json = JSON.parse(jsonobject)[“trees”]。size'? – Kris

回答

4

首先小修正。你的jsonobject应该是一个字符串。将整个jsonobject用单引号括起来。

jsonobject = '{"fruits": [{"name": "A","uri": "a.com"},{"name": "B","uri": "b.com"}],"trees": [{"name": "t1","uri": "t1.com","status": null},{"name": "t2","uri": "t2.com","status": null}]}' 

您可以使用红宝石这里的JSON库...

株数

JSON.parse(jsonobject)["trees"].size 

的水果中

JSON.parse(jsonobject)["fruits"].size 

UPDATE: 如何使jsonobject字符串为

jsonobject =%q({“fruits”:[{“name”:“A”,“uri”:“a.com”},{“name”:“B”,“uri”:“b .com“}],”trees“:[{”name“:”t1“,”uri“:”t1.com“,”status“:null},{”name“:”t2“,”uri“: “t2.com”,“status”:null}]})

+0

这实际上是问题所在。我得到没有单引号的输入。如何使它在Ruby中第一个字符串? –

+0

%红宝石可以帮助你。检查我的编辑... –

+0

它的工作。万分感谢。有一点疑问。如果我有jsonobject作为其他程序的输出,并且我想计算这些元素,那么我怎样才能在不将它写入单独的程序中。我可以写jsonobject =%qjsonobject吗? –