解析JSON时出现意外的标识符

时间:2015-01-13 14:56:30

标签: javascript php jquery json

我从php获取一个JSON对象只包含一列不同的值。这是相关部分:

[Object]
0: Object
count(distinct value): "456"

“Value”是列的名称(是的,我知道它不是列名的好选择。)

我的jquery看起来像这样。我正试图获得“456”并将其附加到div。

$.getJSON('attribute_count.php', function(data) {
$.each(data, function(key, val) {
var attribute_count = val.count(distinct value);
$('#attribute_count').append(attribute_count);
});
});

但是,这会引发错误:Uncaught SyntaxError:行上的意外标识符:

var attribute_count = val.count(distinct value);

我已经使用这种确切的语法从这个数据库获取和追加其他数据没有问题。我猜测“计数(明显的价值)”部分是问题,但不知道如何纠正它。这是我的PHP的相关部分:

$sql = "select count(distinct value) from full_data_complete;";
$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
header('Content-type: application/json');
echo json_encode($result);

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

您当前的代码正在count上查找val方法,以及一些未定义的参数。

最好的解决方案是使用AS关键字在SQL中对列进行别名。

您的SQL将如下所示:

SELECT COUNT(distinct value) AS distinct_value_count FROM full_data_complete;

您现在可以在javascript中访问它:

data.distinct_value_count

您不需要循环数据,因为它是一个对象。

$.getJSON('attribute_count.php', function(data) {
    var attribute_count = data.distinct_value_count;
    $('#attribute_count').append(attribute_count);
});

答案 1 :(得分:0)

如果val实际上是包含count(distinct value)字段的对象,那么您想说:

var attribute_count = val["count(distinct value)"];