0

我在一端序列化并在另一端接收以下 Ruby 映射对象。在目标接收时,我需要将其评估回​​与原始地图对象相同的地图对象并进行一些处理。

但是,目标的评估失败并出现“语法错误,意外 $end”消息。

它失败了,因为:application符号指的是一个UploadIO对象。

鉴于我只能更改接收序列化对象的目标上的代码,解决此问题的最佳方法是什么?将值转换为:application字符串或使用其他技巧?

eval ('
 {"component"=>"CF", 
  "body"=>
    ["PUT", 
     "v2/apps/269e739c-5d08-429c-8682-d3200b79283b/bits", 
     {:payload=>
       {
       :resources=>"[]", 
       :application=>#<UploadIO:0x000000022af330 @content_type="application/zip">
       }
     }
    ]
 }')
4

1 回答 1

2

您不能按原样合理地eval对字符串执行 an ,因为#它正在作为注释字符处理。最直接的方法是#<...>在进行 eval 之前将字符串中出现的 替换为您想要的任何内容。

于 2013-08-14T21:30:30.303 回答