JMS Serializer为何给全大写属性加下划线?是否需用Identical命名策略?
JMS Serializer全大写属性转换问题解决方案
- 是的,完全可以使用
Identical Property Naming Strategy来解决这个问题。 - JMS Serializer默认的命名策略(比如
CamelCaseToSnakeCaseNamingStrategy)会对全大写属性名做特殊处理,将LDAP这类全大写属性转换为_ldap就是这种规则的结果。 - 启用
Identical Property Naming Strategy后,序列化和反序列化过程会严格保留属性名的原始形式,不会进行任何自动转换,这样LDAP属性就能被原样处理,不会出现前缀下划线的情况。 - 以PHP为例的配置示例:
use JMS\Serializer\Naming\IdenticalPropertyNamingStrategy; use JMS\Serializer\SerializerBuilder; $serializer = SerializerBuilder::create() ->setPropertyNamingStrategy(new IdenticalPropertyNamingStrategy()) ->build();
内容的提问来源于stack exchange,提问作者b126
相关产品推荐
相关产品推荐

