0

私は次のように私の応答を得ています

var val = {"Type"=>"D","Number"=>33"}

上から私はこのように変更しようとします

var MyArray = {"Type": "D", "Number": "33"};


for(key in MyArray)
{
  alert("key " + key
    + " has value "
    + MyArray[key]);
}

私は置き換えようとしましたが、機能していないものを除いてすべて置き換えました。助言がありますか?

コメントから貼り付けたサーバー側のコード...

 new_transfer_header = @params['my_extra_param']
 p new_transfer_header,'------------ ew_transfer_header----------,new_transfer_header.class
 WebView.execute_js("replaceDeliveryWithScanUnit('#{new_transfer_header}')") 

puts result as "{\"Type\"=>\"D\", \"Number\"=>\"33\"}
4

2 に答える 2

2
var val = {"Type"=>"D","Number"=>33"} 

無効な JavaScript です - 解析に失敗するため、同じスクリプト/スクリプト ブロック内で修正する方法はありません。

おそらく、サーバー上のこのスクリプトのチャンクに対して誰かが行った余分な HTML エンコーディングを削除する必要があります。

AJAX 呼び出しで受け取ったテキストの場合は"、類似の値を対応する文字に置き換えてから、JSON.parse で解析する必要があります。

于 2012-04-14T07:20:40.060 に答える
0

結果に対してstring.replaceとcal evalを使用できますが、サーバーから有効なjsonを取得する方がよいでしょうか?

于 2012-04-14T07:43:02.577 に答える