从JSON返回的字符串中删除双引号

时间:2012-09-19 17:27:21

标签: c# asp.net-mvc json jquery

我有一个返回MVC JsonResult的ajax方法。我使用数据填充第三方控件数据源。第三方控件期望数据不是字符串(即,它周围没有双引号)。如果我警告jquery ajax调用中返回的数据,它没有显示双引号:

[[10, 10], [15, 20], [20, 25], [32, 40], [43, 50], [55, 60], [60, 70], [70, 80], [90, 100]]

但是,如果我通过fidler查看数据,它会显示我的数据在双引号内:

  

“[[10,10],[15,20],[20,25],[32,40],[43,50],[55,60],[60,   70],[70,80],[90,100]]“

第三方控件没有正确设置数据源,我确信这是因为(如果我通过硬编码上述数据来填充数据源,它可以正常工作)

4 个答案:

答案 0 :(得分:7)

您应该使用eval()或JSON.parse()

var array = eval("[[10, 10], [15, 20], [20, 25], [32, 40], [43, 50], [55, 60], [60, 70], [70, 80], [90, 100]]");

var array = JSON.parse("[[10, 10], [15, 20], [20, 25], [32, 40], [43, 50], [55, 60], [60, 70], [70, 80], [90, 100]]");

答案 1 :(得分:2)

从服务器返回的JSON是一个字符串。服务器无法发送Javascript对象。

如果控件需要Javascript对象,则需要解析该字符串。您可以使用$.parseJSON来解析字符串并从中创建Javascript对象,或者更好地使用$.getJSON之类的方法来获取它或在@.ajax选项中指定daraType: 'json' ,然后在调用success回调函数之前自动解析字符串。

答案 2 :(得分:0)

如果使用$ .getJSON而不是ajax获取数据,它将作为对象而不是字符串返回。

$.getJSON('your/ajax/url', function(json){ ...your code here...});

答案 3 :(得分:0)

使用此格式,在数字值中添加浮动

$json[]=    array($row[0],(float)$row[1],(float)$row[2]);