将 Javascript 对象数组转换并迭代为 PHP 数组
Convert and iterate through Javascript object array to PHP array
我将以下内容发送到我正在处理的 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);
}
我希望能够将 $request 级别中的项目作为 PHP 数组进行迭代,但 $levels 返回为空
我想我做错了什么。
可以的话请指导
谢谢
您的密钥没有正确引用,这是 json_decode 期望的格式,这就是您得到空值的原因。要遍历项目,最好使用 json_decode($jsonString, true);注意第二个参数设置为 true,第二个参数将 return 一个数组而不是 \stdClass.
类型的对象
参见以下示例:
仅当您使用 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) 对其进行解码
我将以下内容发送到我正在处理的 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);
}
我希望能够将 $request 级别中的项目作为 PHP 数组进行迭代,但 $levels 返回为空
我想我做错了什么。
可以的话请指导 谢谢
您的密钥没有正确引用,这是 json_decode 期望的格式,这就是您得到空值的原因。要遍历项目,最好使用 json_decode($jsonString, true);注意第二个参数设置为 true,第二个参数将 return 一个数组而不是 \stdClass.
类型的对象参见以下示例:
仅当您使用 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) 对其进行解码