我将以下内容发送到我正在处理的PHP / Laravel端点。我需要将其转换为PHP数组,以便可以遍历成员,但似乎无法对其执行json_decode()
{
levels: [
{role_id:1, access_level_id:3},
{role_id:2, access_level_id:1},
{role_id:3, access_level_id:2}],
category_id: 3
}
在后端,我有如下方法
public function myfunctionname (Request $request)
{
$levels = json_decode($request->levels);
}
我希望能够以PHP数组的形式遍历$ request级别中的项目,但是$ levels返回为空
我想我对此做错了。
请指导您是否可以 谢谢
答案 0 :(得分:1)
仅当您使用JavaScript生成json时,请阅读此解决方案:
通过ajax发送json时,您可以使用JSON.stringify将其转换为常规json字符串:
var v = {
levels: [
{role_id:1, access_level_id:3},
{role_id:2, access_level_id:1},
{role_id:3, access_level_id:2}],
category_id: 3
};
var j = JSON.stringify(v);
console.log(j);
{"levels":[{"role_id":1,"access_level_id":3},{"role_id":2,"access_level_id":1},{"role_id":3,"access_level_id":2}],"category_id":3}
...,您可以在PHP上使用json_decode(...,true)对其进行解码。
答案 1 :(得分:0)
您的密钥未正确引用,这是json_decode期望的格式,这就是您获取null的原因。要遍历项目,最好使用json_decode($ jsonString,true);请注意,第二个参数设置为true,第二个参数将返回一个数组,而不是\ stdClass类型的对象。
请参见以下示例: