问题标签 [jms-serializer]

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 投票
1 回答
1527 浏览

symfony - 使用带有 Symfony 2.6 的 JMS Serializer 添加根元素名称

我已经使用Symfony 2.6withFOSRestBundle和实现了 Web 服务JMSSerializerBundle

request即使我放入xml_root_name: request了配置文件,我也无法命名一个根元素。

我有一个config\serializer\Entity.Request.yml包含以下信息的文件:

当我尝试访问单个request时,这就是我在 XML 中得到的:

我在 json 中得到了什么:{"id":23,"label":"test label ws post","issuer":"test issuer ws post"}

任何想法我在这里做错了什么?

0 投票
2 回答
1312 浏览

php - 无法在 schmittjoh/serializer 中序列化虚拟属性

我正在序列化的一个类有一个我想看到的虚拟属性。我正在使用 yaml 配置。

这是yaml:

这是课程:

当我序列化模型时,我希望在 json 中看到一个图像字段,其中数组作为它的值。相反,该字段丢失。我在 yaml 文件中尝试了许多设置组合,但无法显示。

0 投票
1 回答
1914 浏览

symfony - Pre_deserialize 回调在 JMSSerializer 中不起作用

我试图通过 jmsserializer 在 pre_deserialization 上执行我的 Document 的 __constructor,但我不知道它为什么不起作用。

我正在从 yaml 文件中加载序列化程序元数据,如下所示:

当我尝试反序列化执行时:

我无法访问构造函数,但是如果我将事件更改为任何其他可用的事件(pre_serialize、post_serialize 和 post_deserialize),我会这样做。

我认为缺少有关处理此特定事件的代码,但尝试复制相同的代码会影响它仍然无法正常工作的其他事件。看起来它从未在事件调度程序或类似的东西中注册。

我的环境是:

谢谢。

0 投票
1 回答
1531 浏览

doctrine-orm - JMS Serializer, Doctrine, Persist 反序列化 OneToMany

我正在尝试保存反序列化的 OneToMany 连接,但学说将父项 ($parent) 的 id 字段留空。

我正在尝试使用 JMS 序列化程序:

结果:所有数据都保存到数据库中,但孩子的列 parent_id 为空!

xml 不包含任何 ID。无论如何,ID 都被排除在(反)序列化之外,因为我想忽略它们。

我的配置有什么问题?

0 投票
0 回答
73 浏览

php - 有没有办法将 JMS Serializer 配置为忽略注释?

我在 Joomla 中使用 JMS 序列化程序!项目,但似乎有几个注释不能与库一起正常工作。我无法删除这些注释,因为它们在 Joomla 中!代码,因此如果用户更新代码,这些注释将再次出现。

有没有办法将序列化程序配置为忽略所有注释?

任何帮助,将不胜感激。

0 投票
0 回答
335 浏览

symfony - 为什么 jms 序列化程序不显示更深层次的实体?

我有Company很多实体,UsersUser有很多Tokens。我想在里面用 User 序列化 Token。

如果我这样做,序列化结果将是:{"token":{"id":2,"user":{},"token":"sxcdftrbgyijmko"}}通知用户存在。如果我将 MaxDepth 更改为 1,则该公司的输出将丢失。{"token":{"id":2,"user":{"id":2,"tokens":[],"name":"Martin"},"token":"sxcdftrbgyijmko"}}. 如果我将 MaxDepth 更改为 2,公司也会被序列化。为什么公司缺少深度一?我试图通过组实现这种行为,但结果相同。


我正在使用侧载访问者,将这些空白字段保留在那里对我来说至关重要,以便访问者将它们变成 id。我还在github上做了最小的功能示例。

0 投票
2 回答
1521 浏览

php - Symfony 和 JMSSerialier,无法添加侦听器以添加额外字段

我试图遵循这个答案: Add extra fields using JMS Serializer bundle

但没有变化..

我想在发送之前向序列化实体(在 json 中)添加额外的字段。有什么我错过的吗?

这是我的听众:

和我的控制器中的调用:

我还添加了以下服务声明:

我声明了另一个服务,当我更改它的声明名称时,symfony give and error,而不是当我使用侦听器服务时。

提前致谢

0 投票
0 回答
113 浏览

php - 是否可以防止 JMSSerializer 的反序列化方法的类型转换?

我需要防止类型转换,因为我在反序列化后验证实体

例如,如果我反序列化以下 json,它将创建排序顺序为 5 的实体。我正在为我的 api 使用此验证,并且不会给出不正确的错误消息。

有没有办法防止类型转换?

0 投票
1 回答
87 浏览

symfony - 仅显示 ID 的序列化实体

我正在使用 JMSSerializer 和 FOSRestBundle。我有一个相当典型的对象图,包括一些递归。

我想要完成的是超出一定深度的包含对象或通常仅列出其 ID,但当直接序列化时,会列出所有数据。

因此,例如:用户 => 组 => 用户

请求 /user/1 时,结果应该类似于

当我请求 /group/10 时,它将是:

使用@MaxDeph 我可以完全隐藏包含的数组,所以我得到 { "id": 1, "name": "John Doe", "groups": [] }

但是我想只包含 ID,以便 REST 客户端可以在需要它们时获取它们,或者查阅他的缓存,或者做任何事情。

我知道我可以使用组手动将其拼凑在一起,但出于一致性原因,我想知道是否可以在整个应用程序中以某种方式启用此行为,甚至可能使用对 maxdepth 的引用,这样我就可以控制在哪里包含 ID 以及在哪里包含完整的对象?

0 投票
1 回答
4420 浏览

php - JMS 反序列化对象中的 ArrayCollection

我正在尝试在我的应用程序(不是 Symfony)中使用 JMS 序列化程序,并希望将 JSON 对象反序列化为 Doctrine 实体。
普通属性正在正确反序列化,但我无法让 ArrayCollections 工作。

这是我的产品 JSON 的摘录:

这是我的产品实体:

这是我的值实体,应该在 ArrayCollection 中反序列化:

只是试图简单地反序列化实体:

但是attributeValue ArrayCollection 保持为空。我错过了什么?