大家好,我正在使用php从数据库获取一些数据,将其编码为json,然后使用ajax显示它发生的事情是,在我的json对象中,我有一个数组,其中也有json对象…当我试图从javascript中访问数组中的json对象时,我得到未定义,因为它们被解释为字符串,而不是json对象
这是我的PHP代码:<?php
if ($_SERVER['HTTPS'] == 'on') {
require '../../Objects/Course.php';
require '../config.php';
require '../Tools.php';
$response;
$c = new Course();
$courses = listCourses();
if (is_array($courses)) {
if (count($courses) != 0) {
$response = array('result' => true, 'data' => 'exist', 'courses' => '');
foreach ($courses as $course) {
$response['courses'][] = json_encode($course);
}
print json_encode($response);
} else {
$response = array('result' => true, 'data' => 'empty');
print json_encode($response);
}
} else {
$response = array('result' => false, 'data' => 'empty');
print json_encode($response);
}
}
?>
这是我的javascript代码:
$.post('ServiceProviders/CourseRelated/listAllCourses.php', function(data){
if(data.result == true){
for(var i = 0 ; i < data.courses.length ; i++){
alert(typeof data.courses[0]);
}
}else{
alert('something went wrong while listing all the courses...try again later.')
}
},'json');
警告的输出是string而不是object…
尝试用$response['courses'][] = $course;
替换$response['courses'][] = json_encode($course);
,因为您只想对您的响应进行json编码一次。