Ruby on rails 在ruby中转换数组的嵌套哈希
如何在ruby中转换嵌套哈希中的数组 例如: 从 到Ruby on rails 在ruby中转换数组的嵌套哈希,ruby-on-rails,ruby,Ruby On Rails,Ruby,如何在ruby中转换嵌套哈希中的数组 例如: 从 到 我想删除散列2,0的键,并将其转换为数组的散列。谢谢我用以下方法尝试并成功了。谢谢大家 def change(messages) result = {} array = [] messages.each do |field, message| if message.is_a?(Hash) if field.is_a? Integer value
我想删除散列2,0的键,并将其转换为数组的散列。谢谢我用以下方法尝试并成功了。谢谢大家
def change(messages)
result = {}
array = []
messages.each do |field, message|
if message.is_a?(Hash)
if field.is_a? Integer
value = change(message)
array.push(value.merge(index: field))
result = array
else
value = change(message)
result[field] = value
end
else
result[field] = message.at(0)
end
end
result
end
你想用这个实现什么?请定义你的需求,并说明你已经尝试了什么。对于你的问题,现在最简单的答案是手工编辑。只需更新问题。谢谢。你有一个未闭合的支架。我想应该是倒数第三个角色吧?
{
"errors": {
"name": "must be filled",
"type": "must be filled",
"address": {
"country_id": "must be filled"
},
"group": {
"name": "is missing"
},
"contacts": [
{
"name": "must be filled",
"index": 2,
"phone": [
{
"number": "must be filled",
"email": "must be valid",
"index": 0
}
]
}
}
}
def change(messages)
result = {}
array = []
messages.each do |field, message|
if message.is_a?(Hash)
if field.is_a? Integer
value = change(message)
array.push(value.merge(index: field))
result = array
else
value = change(message)
result[field] = value
end
else
result[field] = message.at(0)
end
end
result
end