问题标签 [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.
symfony - 使用带有 Symfony 2.6 的 JMS Serializer 添加根元素名称
我已经使用Symfony 2.6
withFOSRestBundle
和实现了 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"}
任何想法我在这里做错了什么?
php - 无法在 schmittjoh/serializer 中序列化虚拟属性
我正在序列化的一个类有一个我想看到的虚拟属性。我正在使用 yaml 配置。
这是yaml:
这是课程:
当我序列化模型时,我希望在 json 中看到一个图像字段,其中数组作为它的值。相反,该字段丢失。我在 yaml 文件中尝试了许多设置组合,但无法显示。
symfony - Pre_deserialize 回调在 JMSSerializer 中不起作用
我试图通过 jmsserializer 在 pre_deserialization 上执行我的 Document 的 __constructor,但我不知道它为什么不起作用。
我正在从 yaml 文件中加载序列化程序元数据,如下所示:
当我尝试反序列化执行时:
我无法访问构造函数,但是如果我将事件更改为任何其他可用的事件(pre_serialize、post_serialize 和 post_deserialize),我会这样做。
我认为缺少有关处理此特定事件的代码,但尝试复制相同的代码会影响它仍然无法正常工作的其他事件。看起来它从未在事件调度程序或类似的东西中注册。
我的环境是:
谢谢。
doctrine-orm - JMS Serializer, Doctrine, Persist 反序列化 OneToMany
我正在尝试保存反序列化的 OneToMany 连接,但学说将父项 ($parent) 的 id 字段留空。
我正在尝试使用 JMS 序列化程序:
结果:所有数据都保存到数据库中,但孩子的列 parent_id 为空!
xml 不包含任何 ID。无论如何,ID 都被排除在(反)序列化之外,因为我想忽略它们。
我的配置有什么问题?
php - 有没有办法将 JMS Serializer 配置为忽略注释?
我在 Joomla 中使用 JMS 序列化程序!项目,但似乎有几个注释不能与库一起正常工作。我无法删除这些注释,因为它们在 Joomla 中!代码,因此如果用户更新代码,这些注释将再次出现。
有没有办法将序列化程序配置为忽略所有注释?
任何帮助,将不胜感激。
symfony - 为什么 jms 序列化程序不显示更深层次的实体?
我有Company
很多实体,Users
也User
有很多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上做了最小的功能示例。
php - Symfony 和 JMSSerialier,无法添加侦听器以添加额外字段
我试图遵循这个答案: Add extra fields using JMS Serializer bundle
但没有变化..
我想在发送之前向序列化实体(在 json 中)添加额外的字段。有什么我错过的吗?
这是我的听众:
和我的控制器中的调用:
我还添加了以下服务声明:
我声明了另一个服务,当我更改它的声明名称时,symfony give and error,而不是当我使用侦听器服务时。
提前致谢
php - 是否可以防止 JMSSerializer 的反序列化方法的类型转换?
我需要防止类型转换,因为我在反序列化后验证实体
例如,如果我反序列化以下 json,它将创建排序顺序为 5 的实体。我正在为我的 api 使用此验证,并且不会给出不正确的错误消息。
有没有办法防止类型转换?
symfony - 仅显示 ID 的序列化实体
我正在使用 JMSSerializer 和 FOSRestBundle。我有一个相当典型的对象图,包括一些递归。
我想要完成的是超出一定深度的包含对象或通常仅列出其 ID,但当直接序列化时,会列出所有数据。
因此,例如:用户 => 组 => 用户
请求 /user/1 时,结果应该类似于
当我请求 /group/10 时,它将是:
使用@MaxDeph 我可以完全隐藏包含的数组,所以我得到 { "id": 1, "name": "John Doe", "groups": [] }
但是我想只包含 ID,以便 REST 客户端可以在需要它们时获取它们,或者查阅他的缓存,或者做任何事情。
我知道我可以使用组手动将其拼凑在一起,但出于一致性原因,我想知道是否可以在整个应用程序中以某种方式启用此行为,甚至可能使用对 maxdepth 的引用,这样我就可以控制在哪里包含 ID 以及在哪里包含完整的对象?
php - JMS 反序列化对象中的 ArrayCollection
我正在尝试在我的应用程序(不是 Symfony)中使用 JMS 序列化程序,并希望将 JSON 对象反序列化为 Doctrine 实体。
普通属性正在正确反序列化,但我无法让 ArrayCollections 工作。
这是我的产品 JSON 的摘录:
这是我的产品实体:
这是我的值实体,应该在 ArrayCollection 中反序列化:
只是试图简单地反序列化实体:
但是attributeValue ArrayCollection 保持为空。我错过了什么?