【发布时间】:2015-08-18 20:03:38
【问题描述】:
我有以下 json,
{
"items": [
{
"name": "table",
"item_group": [
{
"code": "code1",
"section": [
{
"unit": "centimeter",
"values": [
{
"display": "151.13 centimeter"
}
]
},
{
"unit": "centimeter (qualifier value)",
"values": [
{
"display": "170.39 centimeter"
}
]
}
],
"total": 2
}
],
"more_results": false,
"total": 1
}
]
}
我如何遍历它并创建一个“值”数组。我想要 [151.13 厘米,170.39 厘米,....] 之类的东西。请指出一些方向。谢谢。
注意:我必须在 Haml 中执行此操作。
【问题讨论】:
-
你可以这样做:
json.scan(/\"display\": \"(\d+\.\d+) centimeter/).flatten.map(&:to_f) #=> [151.13, 170.39]. -
您知道结构(即嵌套键等)还是只想挖掘嵌套的哈希和数组,直到找到看起来像您想要的字符串?
-
我建议你用单引号将你的 JSON 字符串括起来,这样它就是一个。
-
你为什么要在haml中这样做?你不能在控制器中转移这个逻辑,然后在haml中传递一个变量吗?
标签: ruby-on-rails arrays ruby json haml