json_encode (PHP)返回一个非json对象


json_encode (PHP) returning a non-JSON object

我想在PHP数组上使用json_encode,然后将其返回给AJAX调用。

这里是php数组$match_array

Array ( [0] => 1966318353 [1] => 1962510086 [2] => 1962465781 [3] => 1962349187 [4] => 1962281400 [5] => 1962111347 [6] => 1962016291 [7] => 1961983582 [8] => 1961926702 [9] => 1961799894 ) 

$match_array上使用json_encode返回以下内容:

[1966318353,1962510086,1962465781,1962349187,1962281400,1962111347,1962016291,1961983582,1961926702,1961799894]

解析器将其解释为非json对象。知道为什么会这样吗?

谢谢!

您可以使用JSON_FORCE_OBJECT标志,尝试:

json_encode($array, JSON_FORCE_OBJECT);

json_encode将带有编号键值的数组解释为JSON数组,这是一个有效的JSON字符串。如果你使用JSON.parse()之类的东西,它会返回一个JavaScript数组。上面的海报是正确的,如果你实际上正在寻找一个对象类型。使用JSON_FORCE_OBJECT将强制数组使用对象表示法,如{'0': 1966318353 ... }