从PHP Zend 2中的POST请求解码JSON-String

时间:2015-01-08 19:16:29

标签: php json zend-framework2

我真的需要帮助。

json_decode返回NULL。

我从POST获取字符串:

$arrayOfItems = $request->getPost()->get('arrayOfItems'); 

字符串如下所示:

'[{id: 161, value1: 1, value2: 1},{id: 162, value1: 2, value2: 2},{id: 163, value1: 3, value2: 3}]'

我尝试将ID放入数组中:

$decodedArray = json_decode($arrayOfItems);
$ids = array();
foreach ($decodedArray as $v) {
    $ids[] = $v->id;
}

但是json_decode返回NULL。

欢迎任何帮助。

亲切的问候 rholtermann

2 个答案:

答案 0 :(得分:3)

$ arrayOfItems中的键需要是json_decode的字符串才能在这里工作。例如,以下内容可行:

'[{"id": 161, "value1": 1, "value2": 1},{"id": 162, "value1": 2, "value2": 2},{"id": 163, "value1": 3, "value2": 3}]'

答案 1 :(得分:0)

这里可能有几件事。首先,我不确定这是否是有效的JSON。

其次,如果$arrayOfItems在其输出中有引号,则无效。

如果你控制了你要求的API,请检查它的输出并找出它为什么有单引号。如果没有,你可以用单引号取消引用,但根据你的输出,你应该小心,因为你可能需要它们。