1

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

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

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

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

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

4

4 回答 4

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]]");
于 2012-09-19T17:29:50.120 回答
2

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

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

于 2012-09-19T17:36:38.787 回答
0

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

$.getJSON('your/ajax/url', function(json){ ...your code here...});
于 2012-09-19T17:33:19.743 回答
0

使用这种格式,在你的数值中添加浮点数

$json[]=    array($row[0],(float)$row[1],(float)$row[2]);
于 2013-05-07T09:49:33.757 回答