gpt4 book ai didi

android - 在 Android 中处理序列化的 JSV 类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:11 25 4
gpt4 key购买 nike

我有一个在 ServiceStack ORMLite 中生成的现有 SQLite 数据库。它有一个字段,表示 C# 中字典类型的属性。

ServiceStack 将其作为 JSV 序列化到数据库中,这对于我们当前在所有 .NET 中运行的系统来说工作正常。

我正致力于将现有数据库用于 Android 实现。 Mono(不幸的是)不是一个选项。

我想知道是否有一种方法可以强制 ORMLite 在实际编写自定义 DialectProvider 之外对字段使用 JSON 序列化。这将使我能够使用可用的 JSON 解析器轻松解析该字段。

或者,Java 中的 JSV 解析器也可以解决这个问题。

谢谢

最佳答案

复杂类型Serializer used in OrmLite to serialize Complex Types是可插拔的:

//ServiceStack's JSON and JSV Format
SqliteDialect.Provider.StringSerializer = new JsvStringSerializer();
PostgreSqlDialect.Provider.StringSerializer = new JsonStringSerializer();
//.NET's XML and JSON DataContract serializers
SqlServerDialect.Provider.StringSerializer = new DataContractSerializer();
MySqlDialect.Provider.StringSerializer = new JsonDataContractSerializer();
//.NET XmlSerializer
OracleDialect.Provider.StringSerializer = new XmlSerializableSerializer();

您还可以通过实现 IStringSerializer 来提供自定义序列化策略.

默认情况下,所有方言都使用现有的 JsvStringSerializer,但 PostgreSQL 除外,它由于内置对 JSON 的支持,默认使用 JSON 格式。


JSV Format 没有 Java 实现据我所知,但我们确实有一个 naive implementation in JavaScript如果有人希望将其移植到 Java,这应该是一个很好的起点。

关于android - 在 Android 中处理序列化的 JSV 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15097086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com