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ため、文字列に対してそのまま合理的に実行することはできません。#最も簡単な方法は#<...>、eval を実行する前に、文字列内の の出現箇所を必要なものに置き換えることです。

于 2013-08-14T21:30:30.303 に答える