[英]Remove double quotes from JSON returned string
我有一个返回MVC JsonResult的ajax方法。 我使用数据填充第3方控件数据源。 第三方控件期望数据不是字符串(即,其周围没有双引号)。 如果我警告在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]]“
第三方控件未正确设置数据源,我敢肯定是因为这个原因(如果我通过对上述数据进行硬编码来填充数据源,则可以正常工作)
您应该使用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]]");
从服务器返回的JSON是一个字符串。 服务器无法发送Javascript对象。
如果控件需要Javascript对象,则需要解析字符串。 您可以使用$.parseJSON
解析字符串并从中创建Javascript对象,或者更好地使用$.getJSON
类的方法来获取它,或者在@.ajax
选项中指定daraType: 'json'
,然后字符串将自动在success
回调函数被调用之前被解析。
如果使用$ .getJSON而不是ajax获取数据,则它将作为对象而不是字符串返回。
$.getJSON('your/ajax/url', function(json){ ...your code here...});
使用此格式,在数字值中添加浮点数
$json[]= array($row[0],(float)$row[1],(float)$row[2]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.