如何处理 Laravel 5 中嵌套的 JSON 对象请求?
How to handle nested JSON object request in Laravel 5?
我们在 Laravel 5 和 AngularJs/Ionic 中有这个网络服务 运行 用于处理网络。当我们 post 从网络(客户端)请求到网络服务(后端)时,我们传递了嵌套的 JSON 对象。我们在服务器端读取父对象下的所有子对象时遇到问题。
{
"name": "test",
"description": "test",
"startdate": "2016-02-21T13:00:00.000Z",
"enddate": "2016-02-23T13:00:00.000Z",
"coach": {
"uuid": "76fdd664-d830-11e5-9d46-00ffc9587cbc"
},
"category": {
"uuid": "771e6de4-d830-11e5-9d46-00ffc9587cbc"
},
"useruuid": "76d65a2d-d830-11e5-9d46-00ffc9587cbc",
"routines": ["775b2726-d830-11e5-9d46-00ffc9587cbc"]
}
这个 JSON 已经过验证,我也设法得到了基本的,例如名称、结束等,但不是嵌套对象。
我们在 Laravel 5 中使用类似的东西:
$incomingdata = $request->json()->all();
$name = $incomingdata->name; // works
$startdate = $incomingdata->startdate; // works
$coach_uuid = $incomingdata->coach()->uuid; // didn't work !!!
如何实现?
你可以试试这个:
$phpArray = json_decode($jsonObject,true);
$name = $phpArray['name'];
$coach = $phpArray['coach'];
$coach_uuid = $phpArray['coach']['uuid'];
$category = $phpArray['category'];
$category_uuid = $phpArray['category']['uuid];
我不知道 Laravel 5.0,但在 Laravel 5.6 我不得不做一些完全不同的事情。 None 其他答案中的代码对我有用。
以下是我发现可以正常工作的内容:
$name = $request->input('name');
$startdate = $request->input('startdate');
$coach_uuid = $request->input('coach.uuid');
print_r($name.'<br />');
print_r($startdate.'<br />');
print_r($coach_uuid.'<br />');
以上打印:
test
2016-02-21T13:00:00.000Z
76fdd664-d830-11e5-9d46-00ffc9587cbc
我们在 Laravel 5 和 AngularJs/Ionic 中有这个网络服务 运行 用于处理网络。当我们 post 从网络(客户端)请求到网络服务(后端)时,我们传递了嵌套的 JSON 对象。我们在服务器端读取父对象下的所有子对象时遇到问题。
{
"name": "test",
"description": "test",
"startdate": "2016-02-21T13:00:00.000Z",
"enddate": "2016-02-23T13:00:00.000Z",
"coach": {
"uuid": "76fdd664-d830-11e5-9d46-00ffc9587cbc"
},
"category": {
"uuid": "771e6de4-d830-11e5-9d46-00ffc9587cbc"
},
"useruuid": "76d65a2d-d830-11e5-9d46-00ffc9587cbc",
"routines": ["775b2726-d830-11e5-9d46-00ffc9587cbc"]
}
这个 JSON 已经过验证,我也设法得到了基本的,例如名称、结束等,但不是嵌套对象。
我们在 Laravel 5 中使用类似的东西:
$incomingdata = $request->json()->all();
$name = $incomingdata->name; // works
$startdate = $incomingdata->startdate; // works
$coach_uuid = $incomingdata->coach()->uuid; // didn't work !!!
如何实现?
你可以试试这个:
$phpArray = json_decode($jsonObject,true);
$name = $phpArray['name'];
$coach = $phpArray['coach'];
$coach_uuid = $phpArray['coach']['uuid'];
$category = $phpArray['category'];
$category_uuid = $phpArray['category']['uuid];
我不知道 Laravel 5.0,但在 Laravel 5.6 我不得不做一些完全不同的事情。 None 其他答案中的代码对我有用。
以下是我发现可以正常工作的内容:
$name = $request->input('name');
$startdate = $request->input('startdate');
$coach_uuid = $request->input('coach.uuid');
print_r($name.'<br />');
print_r($startdate.'<br />');
print_r($coach_uuid.'<br />');
以上打印:
test
2016-02-21T13:00:00.000Z
76fdd664-d830-11e5-9d46-00ffc9587cbc