如何在jquery

时间:2017-05-21 06:17:58

标签: javascript jquery mysql json ajax

我从我的json_encode结果中替换双引号“”。

$json_string = json_encode($data);
$json_string = str_replace('"','',$json_string);
echo $json_string;

我使用for循环获取数据。像这样的代码:

$("#gnumbers").change(function() { 
    var id = $(this).find(":selected").val();
    var dataString = 'grpid='+ id;    
    $.ajax({                
        url: 'getGroupNumbers.php',
        dataType: "json",
        data: dataString,  
        cache: false,
        success: function (data) {  
            var i, l;
            for (i = 0, l = data.length; i < l; i++) { 
                $("#num").append(data[i].cnumber + ",");
                //console.log(data[i].cnumber);
            }
        } 
    });
});

我检查了console.log只返回网络结果,如下所示: [{cnumber:8801752992444,group_id:3},{cnumber:8801795978968,8801936761915,group_id:3}]

如果没有str_replace,我可以正确显示数据。即使你可以看到我用逗号分隔多个行。 我的问题是如何显示此输出结果? 请帮忙。感谢

3 个答案:

答案 0 :(得分:2)

  

我替换双引号&#34;&#34;来自我的json_encode结果。

这不是一件明智的事。

你基本上破坏了任何有用的序列化格式。报价是必需的。您如何可靠地将数据与结构分开?如何区分字符串中的逗号和逗号作为控制字符,告诉您下一个字段何时开始?这不像做字符串替换那么简单。如果你想发明自己的格式......我想你可以这样做......但你必须考虑这些事情。

您应该坚持已经存在且经过充分测试的格式。 JSON是一种广泛兼容的格式,这就是它如此频繁使用的原因。如果由于某种原因你需要更紧凑的东西,可以考虑CBOR或类似的东西。

  

如何在jquery

中没有双引号json数组数据的情况下显示

如果你想以不同的方式显示,你就不会像现在这样在你的数据服务器端破坏......你只需要重新格式化它稍后显示。

在JavaScript中删除客户端的引号是可以接受的。在服务器端执行它是一个非常可怕的想法,您仍然需要向客户端提供有用的结构化数据。

答案 1 :(得分:1)

有效的JSON格式要求键是双引号中的字符串。当你执行str_replace并删除双引号时,JSON变为无效,浏览器无法解析它

如果您想将$data从字符串转换为int,那么您应该之前json_encode传递给{{1}}

答案 2 :(得分:0)

尝试

$json_string = json_encode($data);
echo $json_string

然后在success回调中,

$('#num').append(data.map(function(d) {
  return d.cnumber;
}).join(','));

正如布拉德指出的那样,不要替换服务器端的双引号。