问题标签 [jmsserializerbundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
862 浏览

rest - Symfony2 Doctrine SoftDeletable 和 JMSSerializerBundle 不能一起工作

我正在为 Symfony2 和 Doctrine 使用 Gedmo SoftDeletable 过滤器(https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/softdeleteable.md

我还使用 JMSSerializerBundle 为我的 REST API 序列化对 JSON 的响应。

一旦我“软删除”一家公司,我请求所有公司的功能就不再起作用了,因为它会引发 Entity not Found 异常......有没有办法确保 JMSSerializerBundle 忽略我的数据库中的软删除实体?

我的 all() 函数如下所示:

0 投票
1 回答
6640 浏览

symfony - 在 Symfony2 中运行 PHPUnit 测试时,JMS Serializer 未读取配置

我正在使用 JMSSerializer 为我正在处理的 Symfony2 项目创建 JSON 响应,并尝试为每个响应构建单元测试,但我遇到了以下变体:

我正在为序列化程序使用 YML 配置,它在生成响应时工作得很好。

我想知道是否需要以某种方式预加载配置并找到此链接:http: //jmsyst.com/libs/serializer/master/configuration说要配置元数据路径但还要包含文件后缀:

在单元测试中生成序列化程序时,我尝试设置配置目录:

但这并没有解决问题,我再次检查了文档页面,它告诉您列出文件的完整路径

“所以,如果你的类被命名为 Vendor\Package\Foo,则元数据文件需要位于 $someDir/Vendor.Package.Foo.(xml|yml)。”

但尝试 get 生成:

我错过了一些明显的东西吗?

谢谢

0 投票
6 回答
21987 浏览

php - 使用 JMS 序列化器仅将实体关系序列化为 Id

我正在尝试使用 JMS Serializer 序列化实体关系。

这是实体:

以及关系的实体:

我序列化实体,但我不知道如何将国家属性转换为简单字段。

我在 json 中得到这个结果:

但我想像这样获得国家的 id 字段:

JMS 序列化器可以吗?

谢谢你。

[编辑]

@VirtualProperty 不起作用。

0 投票
1 回答
6092 浏览

symfony - FOSUserBundle 反序列化到用户对象抛出“你必须定义一个类型”

基本上我想将 json 反序列化为用户对象。像这样

传递给反序列化器的请求数据:

抛出的错误:

request.CRITICAL:未捕获的 PHP 异常 JMS\Serializer\Exception\RuntimeException:“您必须为 FOS\UserBundle\Model\User::$username 定义一个类型。” 在 ...\vendor\jms\serializer\src\JMS\Serializer\GenericDeserializationVisitor.php 第 170 行 [] []

我使用科幻 2.3。是否需要为 fos 用户类的反序列化设置任何内容?知道为什么我会收到此消息以及如何解决它吗?

0 投票
1 回答
13726 浏览

php - JMS 序列化 @VirtualProperty 不起作用

我正在尝试添加一种序列化方法,但 JMS Serialize 不显示该字段。

接着:

我还没有看到任何有关如何使用 VirtualProperty 的示例。

语法是否正确?怎么了?

谢谢你。

0 投票
1 回答
3839 浏览

php - JMSSerializer 和 FOSRestBundle - 注释不起作用。“不存在”

我正在尝试使用 ExclusionPolicy,但是我不断收到“注释不存在或无法自动加载”错误。

这是抛出的确切错误:

[语义错误] Acme\DemoBundle\Entity\Attributes 类中的注释“@JMS\SerializerBundle\Annotation\ExclusionPolicy”不存在,或者无法自动加载。

我的代码如下:

0 投票
3 回答
5856 浏览

symfony - 如何从 @Groups 包含策略 JMSSerializer 反序列化实体更新 symfony2/doctrine 实体

我正在尝试使用带有 @ExclusionPolicy:None @Groups 包含策略的 JMSSerializer 更新 symfony2/doctrine 实体。

参考:http: //jmsyst.com/libs/serializer/master/reference/annotations

以下记录的结果:

使用组包含进行序列化以避免序列化我不需要的信息(关联、blob 等)所以当我想更新一个实体时,我只反序列化来自 JSON 的实体的更新字段。

当传递回应用程序时,它会反序列化到实体中

问题是当我尝试将实体合并回理论实体管理器时:

结果 foo 正在尝试使用 null 更新排除的属性 (name,created_by)。

如何告诉 JMSSerializer 或 Doctrine Entity Managers 合并我不想用 null 覆盖现有属性?

0 投票
2 回答
9514 浏览

symfony - JMS 序列化程序不公开一个属性

我用 Symfony 和 FOSRestBundle 制作了一个 RESTful 应用程序。FOSRestBundle 使用 JMS Serializer 将数据序列化为 json 格式。我的一切都在处理一个小问题。

这是我的实体类

这是我得到的json:

在我的实体中,$uuid 是唯一具有 @Exclude 注释的属性,并且没有按预期存在,但也缺少 $sign 属性。如您所见,我将 @Expose 注释放在 $sign 上,但没有改变。我尝试使用 @ExclusionPolicy("all") 并公开除 uuid 之外的所有内容,但我得到了

我发现了一些信息,因为它是一些php 错误

知道出了什么问题以及如何解决吗?

0 投票
3 回答
5830 浏览

php - jms 序列化程序性能问题

我正在使用 JMS 序列化程序。我发现当我使用大数据时,性能真的很差。我将以下对象结构显示为数组:

这就是我序列化数据的方式:

数据可以是1直到n对象的列表。当我在数据中有超过 500 个对象时,性能非常非常慢(超过 5 秒)。当我json_encode()直接使用时,它不会超过 1 秒。

如何提高 JMS Serializer 的使用率?我不认为 jms 序列化程序不能处理大数据。

这是将用于序列化的主类:

目前这个对象在里面$data

并且$entries是此类对象的列表:

没有任何注释,因为我准备了我的 dto,以便根据需要使用数据。

0 投票
3 回答
14492 浏览

php - 如何使用 JMS 序列化器在 FOS Rest Bundle 中的 JSON 中显示空值?

我通读了这个:https ://github.com/schmittjoh/serializer/issues/77但没有找到任何方法来序列化 JSON 中的空值,用于带有 JMS 序列化程序的 FOS Rest 捆绑包(意味着只显示教义的关键对象,即使它为空)。

我在 composer.json 中使用以下配置

JMS 序列化程序配置

或 FOS Rest bunde 配置

不工作。我没有使用视图,我是“view_response_listener:'force'”,所以如果可以提供配置中的解决方案,它会有所帮助,谢谢。