php的数据表和json格式错误

我对dataTables和php有点困难。 我以下面的格式回应json:

{“iTotalRecords”:10,“iTotalDisplayRecords”:10,“aaData”:[[“1”,“15”,“1”,“长描述长描述长描述”,“2012-02-25 00: 00:00“],[”1“,”15“,”1“,”长描述长描述长描述“,”2012-02-25 00:18:59“] …]}

哪个inst使用我的dataTable,但是在jsonlint.com/中validation了上面的内容后,我得到了以下格式良好的版本:

{ "iTotalRecords": 10, "iTotalDisplayRecords": 10, "aaData": [ [ "1", "15", "1", "long description long description long description long description", "2012-02-25 00:18:59" ], ... ] } 

当我把它放在一个txt文件中时,它加载得很好。 我还注意到在“长描述”部分添加换行符,即使使用上面的那个也不行。 我的猜测是,换行符是json格式的混乱,但是我怎么能在我的PHP脚本中避免这种情况,因为所有内容都是自动换行的? 我在我的echo代码中尝试了\ n但它似乎没有创建换行符。

DataTables不接受开括号和结束花括号{} 。 我的猜测是,它被认为是一个对象而不是一个数组。 试试这个:

使用以下php函数创建JSON数组:

 $this->arrayJSON = $this->arrayPHPToJS($myArray); public function arrayPHPToJS($phpArray) { if (is_null($phpArray)) return 'null'; if (is_string($phpArray)) return "'" . $phpArray . "'"; if (self::is_assoc($phpArray)) { $a=array(); foreach ($phpArray as $key => $val ) $a[]=self::arrayPHPtoJS($val); return "[" . implode ( ', ', $a ) . "]"; } if (is_array($phpArray)) { $a=array(); foreach ($phpArray as $val ) $a[]=self::arrayPHPtoJS($val); return "[" . implode ( ', ', $a ) . "]"; } return json_encode($phpArray); } 

在视图中的JS脚本中使用此数组(确保没有html转义):

  

听起来更像是表/数据表中设置的列数与json数组中的项数不匹配

我的一个数据库值似乎存在问题,它是从一个新行开始的,这导致json的格式不正确。