Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery解析错误,包含有效的Json_Php_Json_Jquery - Fatal编程技术网

Php Jquery解析错误,包含有效的Json

Php Jquery解析错误,包含有效的Json,php,json,jquery,Php,Json,Jquery,我不知道为什么,但是我得到了一个有效JSON的解析错误(我在jsonlint上检查了它) 我使用php从mysql数据库中获取数据,并将其设置为json字符串,然后将其检索到jquery(参见下面的代码) 这是jquery: $.ajax({ type: "GET", url: "controller.php", data: {action:"loadObjs"}, dataType: "json", contentType: "application/

我不知道为什么,但是我得到了一个有效JSON的解析错误(我在jsonlint上检查了它)

我使用php从mysql数据库中获取数据,并将其设置为json字符串,然后将其检索到jquery(参见下面的代码)

这是jquery:

$.ajax({
    type: "GET",
    url: "controller.php",
    data: {action:"loadObjs"},
    dataType: "json", 
    contentType: "application/json; charset=utf-8",
    async:  true,
    success: function(objs){
            //do stuff
    },
    error:function (xhr, ajaxOptions, thrownError){
        document.write(ajaxOptions);
        document.write(thrownError);
        docmuent.write(xhr);
    }
}
这是controller.php的一部分:

<?php
if (isset($_GET['action'])){
$action = $_GET['action'];

echo var_dump($action);

if ($action == "altaObj") {
    echo addObj();
} else if ($action == "bajaObj") {
//  delObj();
} else if ($action == "modObj") {
//  modObj();
} else if ($action == "loadObjs") {
    echo loadObjs();
} else if ($action == "loadObjProps") {

}
}

function loadObjs() {
$objs = Obj::GetAll();
return json_encode($objs);
}


?>
谢谢。

这是echo var_转储($action)


谢谢x4rf41

您从哪里得到错误?您能显示实际的JSON吗,特别是它断开的那行?这可能比生成它的代码更具启发性。您可以在PHP页面上发布一个完整响应的示例吗?只需点击您的url/controller.php?action=loadObjs并向我们展示它返回的内容。echo var_dump($action);x4rf41是正确的,我完全忘记了var_转储。谢谢
public static function getAll(){            
    $return = array();
    try{
            $sql = "SELECT objectId, name FROM objs";
            $result = db::executeQuery($sql);
            while (false != ($r = mysql_fetch_object($result))) {
                $foo = new Obj($r->objectId, $r->name);
                //$foo->objectName = $r->objectName;
                $return[] = $foo;
            }
            return $return;
    }catch (Exception $e){
        return $e->getMessage();
    }
}