问题编码和解析json


problem encoding and parsing json

大家好,我正在使用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编码一次。