2016-11-21 61 views
0

我使用datatables来创建从我的数据库信息的表格,但我的数据使用JSON/AJAX传递给表的数据表挣扎给我一个无效的JSON响应错误。json_encode输出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); 

无论我转储/ echo $ 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吗?将不胜感激帮助!

这里是我的DataTable的javascript:

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

回答

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

应该

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

json_encodestring输出没有必要为var_dump那边。

+0

而他while循环中有一个的var_dump了。 – bassxzero

+0

@bassxzero我想,只是为了后来在他的脚本调试或东西。没有json_encode函数叫做:)。通常情况下,人们只需要一个json输出作为响应,而不是很多。但无论如何,如果这需要'JSON编码'他应该能够从答案中看到如何使用它:D – georoot

+0

我试过你所建议的,并且返回的输出只是“空”。这是什么造成的?我无法将$ obj编码为JSON,因此它能让我空? – Brayn