У меня есть эта строка:
[{
"box": [{
"UID": "bid1106"}, {
"UID": "bid565"}, {
"UID": "bid1105"}]
}, {
"topseller": [{
"UID": "pid1816z1"}, {
"UID": "pid8840z100z06"}, {
"UID": "pid2942z01z18"}, {
"UID": "pid5863z0"}]
}, {
"global": {
"templatename": "homepage",
"locationid": "",
"controlgroup": "false"}
}]
Мне нужно как-то сделать Object с использованием JMS сериализатора.
$obj = $this->serializer->deserialize($jsonData, ObjectClass::class, 'json');
И мой класс ObjectClass.php выглядит так
class ObjectClass
{
private $box = [];
private $topseller = [];
private $global = [];
....
}
Любые предложения, как я могу сделать это как один объект?
Я просто понимаю это самостоятельно:
$newArray =[];
foreach (json_decode($jsonData, true) as $item) {
$key = array_keys($item)[0];
$newArray[$key] = $item[$key];
}
$obj = $this->serializer->deserialize(json_encode($newArray), ObjectClass::class, 'json');
Других решений пока нет …