我正在通过MongoDB PHP驱动程序向MongoDB添加数据。
由于某种原因,$_POST中的数组一旦在DB中,就会被转换为字符串。
$_POST内容:(使用print_r打印)-仅粘贴相关数组
Array
(
...
...
[ingredients] => [{u'amount': u'1 (14 ounce) can', u'name': u'black beans, drained', u'short_name': u'black beans'}, {u'amount': u'1 (8 ounce) jar', u'name': u'salsa', u'short_name': u'salsa'}]
...
)
DB命令是:
$success = $collection->insert($_POST);
mongoDB(使用mongoshell)中的结果是:
{ ....
"ingredients" : "[{u'amount': u'1 (14 ounce) can', u'name': u'black beans, drained',
u'short_name': u'black beans'}, {u'amount': u'1 (8 ounce) jar', u'name': u'salsa',
u'short_name': u'salsa'}]", ..... }
如何将其保留为数组?
编辑:
@萨尔瓦多·达利的回答是正确的。但为了将来的参考,真正的问题是数组本身(来自于由urllib2在python中生成的POST rquest)
这个
u'string'
PHP的json_decode失败。将其固定到
"string"
解决了问题