[RESOLVIDO]JSON data from server could not be parsed. This is caused by a JSON formatting error

Olá galera, a alguns dias atrás fiz um post perguntando como implementar um DataTable, pois bem: A implementação funcionou perfeitamente porém até então somente inserindo dados manualmente por

. Ontem comecei a tentar trazer os dados do meu banco para o DataTable mas sem sucesso! Eu estou utilizando o método indicado no site do plugin ( http://datatables.net/release-datatables/examples/server_side/server_side.html ), porém ao abrir a página onde se encontra o DataTable ele me apresenta o seguinte erro: JSON data from server could not be parsed. This is caused by a JSON formatting error. Alguém ai sabe como resolver esse erro? Vou deixar abaixo meu html e meu arquivo JSon ( nesse código arquivo JSon é o server_processing.php):

[code]<%@ page language=“java” contentType="text/html; charset=utf-8"
pageEncoding=“utf-8”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>

SGL 1.0 - Brasil Iphone @import url("TelaInicial.css"); div#corpo{margin: 0 auto; padding: 0; width: 960px; background:silver; height: 400px;}
Código Nome Endereço Cidade Complementp Cep Rg Cpf Uf Telefone Celular Email
[/code]

Código Json:

[code]<?php
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Easy set variables
*/

/* Array of database columns which should be read and sent back to DataTables. Use a space where
 * you want to insert a non-database field (for example a counter or static image)
 */
$aColumns = array ('codigo', 'nome', 'endereco', 'cidade', 'complemento', 'cep', 'rg', 'cpf', 'uf', 'telefone1', 'telefone2', 'email');

/* Indexed column (used for fast and accurate table cardinality) */
$sIndexColumn = "codigo";

/* DB table to use */
$sTable = "id";

/* Database connection information */
$gaSql['user']       = "robson";
$gaSql['password']   = "1234";
$gaSql['db']         = "tcc";
$gaSql['server']     = "localhost";




/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you just want to use the basic configuration for DataTables with PHP server-side, there is
 * no need to edit below this line
 */

/* 
 * Local functions
 */
function fatal_error ( $sErrorMessage = '' )
{
	header( $_SERVER['SERVER_PROTOCOL'] .' 500 Internal Server Error' );
	die( $sErrorMessage );
}


/* 
 * MySQL connection
 */
if ( ! $gaSql['link'] = mysql_pconnect( $gaSql['server'], $gaSql['user'], $gaSql['password']  ) )
{
	fatal_error( 'Could not open connection to server' );
}

if ( ! mysql_select_db( $gaSql['db'], $gaSql['link'] ) )
{
	fatal_error( 'Could not select database ' );
}

/* 
 * Paging
 */
$sLimit = "";
if ( isset( $_GET['iDisplayStart'] ) && $_GET['iDisplayLength'] != '-1' )
{
	$sLimit = "LIMIT ".intval( $_GET['iDisplayStart'] ).", ".
		intval( $_GET['iDisplayLength'] );
}


/*
 * Ordering
 */
$sOrder = "";
if ( isset( $_GET['iSortCol_0'] ) )
{
	$sOrder = "ORDER BY  ";
	for ( $i=0 ; $i<intval( $_GET['iSortingCols'] ) ; $i++ )
	{
		if ( $_GET[ 'bSortable_'.intval($_GET['iSortCol_'.$i]) ] == "true" )
		{
			$sOrder .= "`".$aColumns[ intval( $_GET['iSortCol_'.$i] ) ]."` ".
				($_GET['sSortDir_'.$i]==='asc' ? 'asc' : 'desc') .", ";
		}
	}
	
	$sOrder = substr_replace( $sOrder, "", -2 );
	if ( $sOrder == "ORDER BY" )
	{
		$sOrder = "";
	}
}


/* 
 * Filtering
 * NOTE this does not match the built-in DataTables filtering which does it
 * word by word on any field. It's possible to do here, but concerned about efficiency
 * on very large tables, and MySQL's regex functionality is very limited
 */
$sWhere = "";
if ( isset($_GET['sSearch']) && $_GET['sSearch'] != "" )
{
	$sWhere = "WHERE (";
	for ( $i=0 ; $i<count($aColumns) ; $i++ )
	{
		if ( isset($_GET['bSearchable_'.$i]) && $_GET['bSearchable_'.$i] == "true" )
		{
			$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ";
		}
	}
	$sWhere = substr_replace( $sWhere, "", -3 );
	$sWhere .= ')';
}

/* Individual column filtering */
for ( $i=0 ; $i<count($aColumns) ; $i++ )
{
	if ( isset($_GET['bSearchable_'.$i]) && $_GET['bSearchable_'.$i] == "true" && $_GET['sSearch_'.$i] != '' )
	{
		if ( $sWhere == "" )
		{
			$sWhere = "WHERE ";
		}
		else
		{
			$sWhere .= " AND ";
		}
		$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string($_GET['sSearch_'.$i])."%' ";
	}
}


/*
 * SQL queries
 * Get data to display
 */
$sQuery = "
	SELECT SQL_CALC_FOUND_ROWS `".str_replace(" , ", " ", implode("`, `", $aColumns))."`
	FROM   $sTable
	$sWhere
	$sOrder
	$sLimit
	";
$rResult = mysql_query( $sQuery, $gaSql['link'] ) or fatal_error( 'MySQL Error: ' . mysql_errno() );

/* Data set length after filtering */
$sQuery = "
	SELECT FOUND_ROWS()
";
$rResultFilterTotal = mysql_query( $sQuery, $gaSql['link'] ) or fatal_error( 'MySQL Error: ' . mysql_errno() );
$aResultFilterTotal = mysql_fetch_array($rResultFilterTotal);
$iFilteredTotal = $aResultFilterTotal[0];

/* Total data set length */
$sQuery = "
	SELECT COUNT(`".$sIndexColumn."`)
	FROM   $sTable
";
$rResultTotal = mysql_query( $sQuery, $gaSql['link'] ) or fatal_error( 'MySQL Error: ' . mysql_errno() );
$aResultTotal = mysql_fetch_array($rResultTotal);
$iTotal = $aResultTotal[0];


/*
 * Output
 */
$output = array(
	"sEcho" => intval($_GET['sEcho']),
	"iTotalRecords" => $iTotal,
	"iTotalDisplayRecords" => $iFilteredTotal,
	"aaData" => array()
);

while ( $aRow = mysql_fetch_array( $rResult ) )
{
	$row = array();
	for ( $i=0 ; $i<count($aColumns) ; $i++ )
	{
		if ( $aColumns[$i] == "version" )
		{
			/* Special output formatting for 'version' column */
			$row[] = ($aRow[ $aColumns[$i] ]=="0") ? '-' : $aRow[ $aColumns[$i] ];
		}
		else if ( $aColumns[$i] != ' ' )
		{
			/* General output */
			$row[] = $aRow[ $aColumns[$i] ];
		}
	}
	$output['aaData'][] = $row;
}

echo json_encode( $output );

?>[/code]

Ps: não sei se esse erro se deve ao fato do arquivo JSon ser php, caso seja esse o motivo, teria como contornar esse problema?

Problema resolvido usando um For para preencher a tabela !