2012-04-14 48 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会更好吗?