(反)序列化 QSet 与枚举使用 QDataStream

Posted

技术标签:

【中文标题】(反)序列化 QSet 与枚举使用 QDataStream【英文标题】:(De)serialization QSet with enum using QDataStream 【发布时间】:2017-08-11 09:14:50 【问题描述】:

我使用 Qt 4.8.7。我有enum Color red, green, blueQSet<Color>。我应该如何使用QDataStream(反)序列化QSet<Color>?自定义类型的反序列化失败。除了反序列化之外,我还应该手动创建序列化(循环 QSet 元素)吗?我的意思是QSet的内部序列化实现理论上可以由Qt开发者改变,所以我必须自己写两个循环进行序列化/反序列化。

【问题讨论】:

【参考方案1】:

您可以使用以下强制转换进行反序列化以避免创建手动循环:

data_stream >> reinterpret_cast<QSet<qint32>&>(color_set2);

【讨论】:

以上是关于(反)序列化 QSet 与枚举使用 QDataStream的主要内容,如果未能解决你的问题,请参考以下文章

反序列化 null 值以使用 Jackson 枚举

使用枚举数组反序列化 json

使用 Gson 序列化和反序列化枚举 [重复]

枚举类型的 JSON 反序列化

如何使用 Jackson json 注释枚举字段以进行反序列化

你如何序列化和反序列化枚举?