具有以下示例输入:
{
"array": [
{
"userId": 1203746,
"leadContactVids": [
68310280,
68310253
]
}
]
}
我正在尝试将其转换为以下格式:
{
"updatedArray": [
{
"userId": 1203746,
"leadContactVids": [
{
"id": 68310280,
"id": 68310253
}
]
}
]
}
我尝试使用下面的ruby代码,但它返回的是初始格式,而不是包含键“id”的格式:
updatedArray= array.each do |entry|
qlIds = entry.dig(:leadContactVids)&.map { |item| {id: item} }
entry.merge({
leadContactVids: qlIds
})
end
我不知道我错过了什么,所以我很感激一些帮助!
3条答案
按热度按时间nnt7mjpx1#
我将从现有数组创建新数组,并将其数据格式替换为'Array#map',以获得预期的新格式:
cbwuti442#
正如@spickermann所说,你应该使用
#map
来获取返回值,而不是#each
,因为“array”对象没有被改变:设置
固定编码
zphenhs43#
我们得到以下哈希。
可以如下获得期望的散列。
我假设这是你想要的结果。请参阅Hash#transform_values。原始哈希没有发生变化。