-je obtenir les données de demande http sous forme donnéeSymfony3 sérialiseur - Comment séparer les valeurs de chaînes de points et se combinent dans une colonne de tableau
{
"start_date": "2017-03-13",
"end_date": "2017-03-19",
"visitors_total": 2555,
"views_total": 2553,
"visitors_country.france": 100,
"visitors_country.germany": 532,
"visitors_country.poland": 32,
"views_country.france": 110,
"views_country.germany": 821,
"views_country.poland": 312,
}
entité doctrine
defination pour les colonnes
"start_date" => datetime
"end_date" => datetime
"visitors_total" => int
"views_total" => int
"visitors_country" => array
"views_country => array
Pour le visitors_country et views_country, les clés/valeurs du tableau sont séparées par des points. Ces valeurs
séparés par des points"views_country.france": 110,
"views_country.germany": 821,
"views_country.poland": 312,
qui devraient être
'view_country' => array(
'france'=> 110,
'germany'=> 821,
'poland'=> 312,
);
J'utilise Symfony sérialisation composant pour la sérialisation des données demandées et ayant problème dénormaliser les données.
je fait quelque chose comme ça
class ArrayDotNormalizer implements DenormalizerInterface
{
/**
* {@inheritdoc}
*
*/
public function denormalize($data, $class, $format = null, array $context = array())
{
// Actually, this function applies to each column of requested data ,
//but how to separate values by dot and join them in one array and store as array json in db ?
}
/**
* {@inheritdoc}
*/
public function supportsDenormalization($data, $type, $format = null)
{
return strpos($data, '.') !== false;
}
}
Toute idée de résoudre ce problème?
Les données de http est JSON? Si c'est le cas, alors décoder json retournera array et ensuite essayer d'utiliser l'option explode avec (dot) pour faire comme structure de tableau désirée –