@@ -1239,6 +1239,67 @@ setting the ``name_converter`` setting to
12391239 ];
12401240 $serializer = new Serializer($normalizers, $encoders);
12411241
1242+ snake_case to CamelCase
1243+ ~~~~~~~~~~~~~~~~~~~~~~~
1244+
1245+ In Symfony applications is common to use camelCase to name properties. However
1246+ some packages can use snake_case as convention.
1247+
1248+ Symfony provides a built-in name converter designed to transform between
1249+ CamelCase and snake_cased styles during serialization and deserialization
1250+ processes. You can use it instead of the metadata aware name converter by
1251+ setting the ``name_converter `` setting to
1252+ ``serializer.name_converter.snake_case_to_camel_case ``:
1253+
1254+ .. configuration-block ::
1255+
1256+ .. code-block :: yaml
1257+
1258+ # config/packages/serializer.yaml
1259+ framework :
1260+ serializer :
1261+ name_converter : ' serializer.name_converter.snake_case_to_camel_case'
1262+
1263+ .. code-block :: xml
1264+
1265+ <!-- config/packages/serializer.xml -->
1266+ <?xml version =" 1.0" encoding =" UTF-8" ?>
1267+ <container xmlns =" http://symfony.com/schema/dic/services"
1268+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
1269+ xmlns : framework =" http://symfony.com/schema/dic/symfony"
1270+ xsi : schemaLocation =" http://symfony.com/schema/dic/services
1271+ https://symfony.com/schema/dic/services/services-1.0.xsd
1272+ http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd" >
1273+
1274+ <framework : config >
1275+ <framework : serializer
1276+ name-converter =" serializer.name_converter.snake_case_to_camel_case"
1277+ />
1278+ </framework : config >
1279+ </container >
1280+
1281+ .. code-block :: php
1282+
1283+ // config/packages/serializer.php
1284+ use Symfony\Config\FrameworkConfig;
1285+
1286+ return static function (FrameworkConfig $framework): void {
1287+ $framework->serializer()
1288+ ->nameConverter('serializer.name_converter.snake_case_to_camel_case')
1289+ ;
1290+ };
1291+
1292+ .. code-block :: php-standalone
1293+
1294+ use Symfony\Component\Serializer\NameConverter\SnakeCaseToCamelCaseNameConverter;
1295+ use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
1296+
1297+ // ...
1298+ $normalizers = [
1299+ new ObjectNormalizer(null, new SnakeCaseToCamelCaseNameConverter()),
1300+ ];
1301+ $serializer = new Serializer($normalizers, $encoders);
1302+
12421303 .. _serializer-built-in-normalizers :
12431304
12441305Serializer Normalizers
0 commit comments