我正在用php创建一个数组,然后在通过$ .getJSON获取它之前使用json_encode(),但是它返回Undefined。如果我仅向JS发送一行,则可以正常工作(json_encode($ classes [0])),但是当我尝试发送所有数据时,它将返回Undefined。有什么想法吗?
这里有一些通过查询数据库并返回结果而生成的数组...
Array
(
[0] => Array
(
[Record_Type] => S
[Convention_ID] =>
[Event_ID] => 19030145
[Sponsor_ID] => Google
[Course_ID] => 2837199
[Last_Modified_Date_Time] => DateTime Object
(
[date] => 2019-02-25 10:03:36.000000
[timezone_type] => 3
[timezone] => US/Pacific
)
)
[1] => Array
(
[Record_Type] => S
[Convention_ID] =>
[Event_ID] => 19030111
[Sponsor_ID] => Google
[Course_ID] => 2837192
[Last_Modified_Date_Time] => DateTime Object
(
[date] => 2019-02-21 07:23:47.000000
[timezone_type] => 3
[timezone] => US/Pacific
)
)
这是PHP减去SQL语句...
$stmt = sqlsrv_query($conn, $sql);
$classes = array();
while( $class = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
$classes[] = $class;
}
echo $_GET['callback'] . '('.json_encode($classes).')';
这是我用来获取JSON数据的Javascript ...
$(function() {
$.getJSON("https://example/api/education.php?callback=?",
function(data) {
console.log(data);
}
);
});
答案 0 :(得分:0)
我发现了问题。它不在代码中,而在SQL查询返回的数据中。这个字符-是数据库中存储的字符串的一部分。这个字符使JSON返回Undefined。当我从数据库中删除所有内容时,一切都开始正常工作。