解析 JSON 时意外的标识符

Unexpected Identifier when parsing JSON

本文关键字:标识符 意外 JSON 解析      更新时间:2023-09-26

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

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

"值"是列的名称(是的,我知道这不是列名称的好选择)。

我的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);
});
});

但是,这会引发错误:未捕获的语法错误:行上出现意外的标识符:

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);

任何想法将不胜感激。

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

最好的解决方案是使用 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);
});

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

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