json_encode输出无效,作为对数据表的JSON响应?

时间:2016-11-21 14:58:14

标签: php json datatables

我正在使用datatables创建一个包含来自我的数据库的信息的表,但我正在努力将数据传递到使用JSON / AJAX的表作为数据表,这给我一个无效的JSON响应错误。

我正在做的是将查询的结果作为对象并将其编码为JSON以获取要获取的数据。我似乎很难将它编码为JSON。

        $sql = "SELECT * FROM BedrijfskledingT 
                INNER JOIN Bedrijfskleding ON BedrijfskledingT.KledingID = Bedrijfskleding.KledingID 
                INNER JOIN Gebruikers ON BedrijfskledingT.GebruikerID = Gebruikers.GebruikerID";
        $stmt = sqlsrv_query( $conn, $sql);
            while( $obj = sqlsrv_fetch_object( $stmt)) {
                var_dump($obj);
            }

            $json = json_encode($obj);
                var_dump ($json);

无论是转储/回显$ json还是$ obj,结果都保持不变。我尝试将json_encoder的输出放到JSON Validator,它给出了以下解析错误:

Error: Parse error on line 1:
object(stdClass) #1 
^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

以下是$ json的输出。我把它缩小到一排,因为有很多。

object(stdClass) #1 (23) { ["GebruikerID"]= > int(17)["KledingID"] => string(5)
"KL001" ["Aantal"] => int(2)["Notitie"] => string(10)
"incl. Logo" ["Omschrijving"] => string(5)
"Broek" ["Artikelnr"] => string(14)
"12179-203-0918" ["Prijs"] => string(5)
"50.36" ["Gebruikersnaam"] => string(2)
"CD" ["Voornaam"] => string(4)
"Coen" ["Tussenvoegsel"] => NULL["Achternaam"] => string(10)
"*******" ["Woonplaats"] => NULL["Email"] => string(25)
"*****@*****.nl" ["Functienaam"] => string(14)
"Field Engineer" ["Bedrijf"] => string(6)
"Cruxin" ["Manager"] => NULL["Werkplek"] => NULL["IndienstTreding"] => string(10)
"1999-12-31" ["Beschrijving"] => NULL["CreatedBy"] => NULL["ModifiedBy"] => NULL["DateCreated"] => NULL["DateModified"] => NULL
}

我没有正确使用json_encode吗?非常感谢帮助!

这是我的数据表javascript:

$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "server_processing.php"
    } );
} );

1 个答案:

答案 0 :(得分:0)

$json = json_encode($obj);
var_dump ($json);

应该是

// Remember `json_encode` only takes in array and not objects
echo json_encode((array)$obj);

json_encode的输出为string,那里不需要var_dump