PHP&;MongoDB。如何将php数组转换为javascript对象?

PHP&;MongoDB。如何将php数组转换为javascript对象?,php,javascript,mongodb,Php,Javascript,Mongodb,我有一个提供和许多字段和排序复杂的查询集合。任务是在查询结果中查找只有查询数组和当前文档ID的上一个和下一个文档。因此,我正在编写一个javascript函数,该函数执行排序查询并返回两个ID。问题是如何将php查询数组转换为正确的javascript对象 例如,类似这样的事情: $query = array('city' => new MongoId('...'), 'price' => array('$gt' => 100000), ...); $sort = array(

我有一个提供和许多字段和排序复杂的查询集合。任务是在查询结果中查找只有查询数组和当前文档ID的上一个和下一个文档。因此,我正在编写一个javascript函数,该函数执行排序查询并返回两个ID。问题是如何将php查询数组转换为正确的javascript对象

例如,类似这样的事情:

$query = array('city' => new MongoId('...'), 'price' => array('$gt' => 100000), ...);
$sort = array('price' => -1);
$code = new MongoCode("function findPrevNext() { db.offer.find($query).sort($sort).forEach(function(obj){ ... }) }");

我怎样才能进行这样的转换

要在JavaScript中读取这些数据,请在从PHP返回的JSON上运行JavaScript的eval()函数

编辑:这里还有其他人的回答,他们讨论了json_encode()在PHP中的用法

要将数组转换为JSON,您需要:

json_encode($my_array);
var myObject = eval(jsonStringFromPHP);
要将该数据解析为JavaScript对象,您需要:

json_encode($my_array);
var myObject = eval(jsonStringFromPHP);

根本不需要使用转换。一切都可以使用标准工具完成:

$code = 'function findNext(query, sort, current) { ... }';
$result = $mongo->command(array('$eval' => new MongoCode($code), 'args' => array($query, $sort, new MongoId($offer)), 'nolock' => true));

如果使用
PHP>=5.3.0
运行,则可以使用
json\u encode
并可以利用
选项
参数

json_encode($array, JSON_FORCE_OBJECT);
JSON\u FORCE\u对象


使用非关联数组时,输出对象而不是数组。当输出的接收者需要一个对象且数组为空时特别有用。

Downvote可能是为eval()提供的。有更干净的方法在客户端处理json。e、 g MongoDB不支持JSON.parse(),因此这里的eval是可以的。