将多个 JSON 对象合并到 Laravel Eloquent 集合中的单个对象
Merge multiple JSON object into a single in Laravel Eloquent collection
我在使用 Laravel Eloquent 集合将多个 JSON 对象合并为一个对象时遇到问题。
当我运行以下代码时:
return Project::all();
我知道了:
[
{
"created_at": "2016-02-17 15:08:11",
"description": "first description",
"id": 1,
"name": "John Doe",
"updated_at": "2016-02-17 15:08:11"
},
{
"created_at": "2016-02-17 15:08:31",
"description": "second description",
"id": 2,
"name": "Jane Doe",
"updated_at": "2016-02-17 15:08:31"
}
]
但是,我正在尝试将这个多个 JSON 对象合并为一个对象,如下所示:
{
"0": "John Doe",
"1": "Jane Doe"
}
这让我发疯。有没有人可以帮助我如何实现这一目标? 这里关键不重要
使用Collection::pluck()
:
$projects = Project::all();
$projects = $projects->pluck('name')->toJson();
// [ "John Doe", "Jane Doe" ]
如果你想让它成为一个对象,像这样转换它
(object) $projects->pluck('name')->toArray()
// { "0": "John Doe", "1": "Jane Doe" }
如果您想 return 一个 JSON 响应
$projects = (object) $projects->pluck('name')->toArray()
return response()->json($projects);
只需定义一个新数组并插入您想要的任何值。
假设您的 JSON 对象名为 $data;
$result = array();
foreach($data as $us){
array_push($result, $us['name']);
}
$result = json_encode($result, JSON_FORCE_OBJECT);
我在使用 Laravel Eloquent 集合将多个 JSON 对象合并为一个对象时遇到问题。
当我运行以下代码时:
return Project::all();
我知道了:
[
{
"created_at": "2016-02-17 15:08:11",
"description": "first description",
"id": 1,
"name": "John Doe",
"updated_at": "2016-02-17 15:08:11"
},
{
"created_at": "2016-02-17 15:08:31",
"description": "second description",
"id": 2,
"name": "Jane Doe",
"updated_at": "2016-02-17 15:08:31"
}
]
但是,我正在尝试将这个多个 JSON 对象合并为一个对象,如下所示:
{
"0": "John Doe",
"1": "Jane Doe"
}
这让我发疯。有没有人可以帮助我如何实现这一目标? 这里关键不重要
使用Collection::pluck()
:
$projects = Project::all();
$projects = $projects->pluck('name')->toJson();
// [ "John Doe", "Jane Doe" ]
如果你想让它成为一个对象,像这样转换它
(object) $projects->pluck('name')->toArray()
// { "0": "John Doe", "1": "Jane Doe" }
如果您想 return 一个 JSON 响应
$projects = (object) $projects->pluck('name')->toArray()
return response()->json($projects);
只需定义一个新数组并插入您想要的任何值。
假设您的 JSON 对象名为 $data;
$result = array();
foreach($data as $us){
array_push($result, $us['name']);
}
$result = json_encode($result, JSON_FORCE_OBJECT);