我想在 Ruby 中深度复制一个 json 对象。但是,当我调用 clone json 对象时,它似乎并没有进行深层复制。有可能还是我做错了什么。这是我现在正在做的相关代码片段:
idFile = File.new(options[:idFile])
idFile.each_line do |id|
jsonObj = getJson(id)
copyObj = jsonObj.clone
copyObj['details']['payload'] = Base64.decode64(copyObj['payload'])
copyObj['key'] = 1
jsonObj['details']['payload'] = Base64.decode64(jsonObj['payload'])
jsonObj['key'] = 2
send(copyObj)
send(jsonObj) #error here
end
def getJson(id)
idData = getData(id)
idJson = JSON.parse!(idData)
idJson = idJson['request'][0]
return idJson
end
我的错误是由于解码调用而发生的。第一次解码调用已经解码了对象,第二次尝试再次解码相同的数据,在第二次发送调用中出错,因为此时数据是乱码。
如何深度复制该 json 对象?