【问题标题】:Remove double quotes from JSON returned string从 JSON 返回的字符串中删除双引号
【发布时间】:2012-09-19 17:27:21
【问题描述】:

我有一个返回 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 方控件没有正确设置数据源,我确定是因为这个(如果我通过硬编码上述数据来填充数据源,它可以正常工作)

【问题讨论】:

  • 你试过JSON.parseing(或$.parseJSON)返回的数据吗?

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


【解决方案1】:

你应该使用 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]]");

【讨论】:

【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 2012-02-08
        • 2013-05-14
        相关资源
        最近更新 更多