- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 JMSSerializerBundle 将我的 symfony 实体序列化为 JSON。我有以下类结构:
abstract class A {}
abstract class B extends A {}
class C extends B {}
现在我想序列化 C
类的对象,所以我定义了一个新组,假设为“example_group”,并像这样设置 @Groups
注释:
abstract class A {
/**
* @Groups({"example_group"})
*/
private $a1;
private $a2;
}
abstract class B extends A {
/**
* @Groups({"example_group"})
*/
private $b1;
private $b2;
}
class C extends B {
/**
* @Groups({"example_group"})
*/
private $c1;
}
生成的序列化不仅包含 C::c1
字段,还包含 B::b1
,但令人惊讶的是没有 A::a1
。这是预期的行为吗?我还需要包含 A::a1
。我怎样才能做到这一点?
谢谢。
最佳答案
不要忘记为这三个类设置 ExclusionPolicy
。
use JMS\Serializer\Annotation\ExclusionPolicy
/**
* @ExclusionPolicy("all")
*/
abstract class A
{
// ...
}
/**
* @ExclusionPolicy("all")
*/
abstract class B extends A
{
// ...
}
/**
* @ExclusionPolicy("all")
*/
class C extends B
{
// ...
}
通过使用组 example_group
序列化 C
,您应该获得通过 @Groups
注释公开的所有属性。
因此对于您的实例,您应该呈现 $a1
、$b1
和 $c1
。
关于php - JMSSerializerBundle:@Group 不处理父类的父类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36370858/
我需要在 symfony 2 上为我的网站实现 RESTful API,所以我使用 FOSRestBundle + JMSSerializerBundle 我的实体有这样的序列化程序 yml: Acm
我正在尝试为 JMS Serializer Bundle 使用自定义处理程序 class CustomHandler implements SubscribingHandlerInterface {
我有两个实体希望使用 JMSSerializerBundle 进行序列化。 Music实体有一个带有 exclusion_policy: NONE 的映射文件. Music实体有实体的字段User来自
我安装了 FOSRestBundle,但它需要 JMSSerializerBundle。 我在我的部门中添加了以下几行: [JMSSerializerBundle] git=git://git
我有一个简单的问题,但我不知道如何解决。 我在 Symfony2 中有一个带有 FOSRestBundle + JMSSerializerBundle 的项目。在我的实体中,我有一些日期时间字段,用户
假设我想创建一个如下所示的 XML 响应: 1234 Red Stapler 3.14 给定一个如下所示的域模型: 1234 Red Stapler 3.14
我正在构建一个 REST API,我想让我的用户可以选择通过 URL 参数返回哪些字段,例如 /users?fields=username,email,address.city,address.cou
在使用一个附加字段 $name 序列化 User 实例时遇到问题,该字段从 FOSUserBundle 扩展了基本 User: name = $name; return $this;
我已经为 JMS 序列化配置了一个访问者: class MyHandler implements SubscribingHandlerInterface { public static functio
我正在使用 JMSSerializerBundle 将我的 symfony 实体序列化为 JSON。我有以下类结构: abstract class A {} abstract class B exte
我在 Symfony2 项目中结合使用 JMSSerializerBundle 和 Doctrine2。 我将类属性定义为 double 值,因为它代表产品价格。 /** * Price of pr
我想使用 JMSSerializer 处理序列化和反序列化的单个对象属性。假设我们有这个类: class Task { const STATUS_PENDING = 0; const
我在使用 JMS Serializer 排除某些 KNP Paginator 属性时遇到问题。 首先,这包含在 composer.json 中 ... "jms/serializer-bundle":
我正在尝试为以下项目安装供应商 connect在 osx lion 上。 cd /tmp git clone git://github.com/dsyph3r/connect cd connect g
我的 symfony2 项目中有一个 bundle 和框架之外的自定义实体。 我需要将 json 数据设置到该实体中,但无法将正确的配置应用于用户 yaml 文件。 应用程序/config/confi
我只想使用 JMSSerializerBundle 和 FOSRestBundle 公开 User 类的几个属性。序列化程序包似乎没有读取我的配置文件。 我的用户类别位于 src/AppBundle/
我有实体: isGranted('ROLE_ADMIN')){ throw new AccessDeniedException('Only for Admin');
在从数据库获取实体(通过 findAll() )之后以及将结果序列化为 json 之前,我需要应用一些逻辑。 我想在某些字段上添加翻译。我知道我可以通过迭代每个实体并在 Controller 中应用我
我正在尝试设置不同的组,以根据上下文实现不同类型的实体序列化。 我的配置是这样的: My\FooBundle\Entity\Asset: exclusion_policy: ALL a
我在 doctrine2 设置中有 Category OneToMany Post 关联,如下所示: 类别: ... /** * @ORM\OneToMany(targetEntity="Post"
我是一名优秀的程序员,十分优秀!