JMS Serializer: how to use camel case for properties

后端 未结 4 1681
广开言路
广开言路 2021-01-12 00:20

I\'m using FOS Rest bundle and JMS Serializer to create a REST Api. The problem is I would like to keep the property names in the JSON response camel cased instead of using

4条回答
  •  情书的邮戳
    2021-01-12 01:10

    I found a way to do it globally, if you want to keep the property names as is you need to use the IdenticalPropertyNamingStrategy

    There are several ways to accomplish this, first by changing the config(Thanks @Phantom):

    #config.yml
    jms_serializer:
        property_naming: 
            id: 'jms_serializer.identical_property_naming_strategy'
    

    Second, you could override the default alias for this

    services:
        jms_serializer.naming_strategy:
            alias: jms_serializer.identical_property_naming_strategy
    

    The bundle defines these https://github.com/schmittjoh/JMSSerializerBundle/blob/master/Resources/config/services.xml so you should be able to override them

    Another way to do it is when you initialize the builder:

    $serializebuilder = JMS\Serializer\SerializerBuilder::create();
    $serializebuilder->setPropertyNamingStrategy(new \JMS\Serializer\Naming\IdenticalPropertyNamingStrategy());
    $serializer = $serializebuilder->build();
    

提交回复
热议问题