2012-04-14 45 views
0

我得到我的回答如下的Javascript替換爲等號

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\"} 
+1

是否包含在響應中的'var val ='?或只是JSON部分? – Joseph 2012-04-14 07:20:27

+0

val不在響應中。我正在爲變量val – vinothini 2012-04-14 07:22:18

+1

分配響應,您可以發佈構建此響應的服務器端代碼嗎?我假設你正在使用某種'html_entities' – Joseph 2012-04-14 07:23:38

回答

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

無效的JavaScript - 有沒有辦法在同一個腳本/腳本塊內修復它,因爲它無法解析。

可能你需要消除服務器上這段腳本所做的額外HTML編碼。

如果它是由某個AJAX調用接收到的文本,則應該能夠用相應的字符替換"和類似的值,並使用JSON.parse解析。

+0

{\「Type \」=> \「D \」,\「Number \」=> \「33 \」}從後端我發送像這樣。這是一個字符串類。可以轉換json格式 – vinothini 2012-04-14 07:28:29

+1

考慮指定你在服務器上使用的是什麼語言,更好的是在你的問題中提供服務器端代碼(不超過7行)。 – 2012-04-14 07:32:02

+0

new_transfer_header = @params ['my_extra_param'] WebView.execute_js(「replaceDeliveryWithScanUnit('#new_transfer_header}')」) new_transfer_header看起來像上面那樣。我正在使用紅寶石。 – vinothini 2012-04-14 07:33:55

0

你可以對我想的結果使用string.replace和cal eval,但是從服務器獲取有效的json會更好嗎?