繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM