4

ServiceStack ORMLite で生成された既存の SQLite データベースがあります。C# の Dictionary 型のプロパティを表すフィールドがあります。

ServiceStack はこれを JSV としてデータベースにシリアル化し、すべての .NET で実行される現在のシステムで問題なく動作します。

私は、Android の実装に既存のデータベースを使用することに取り組んでいます。モノは(残念ながら)オプションではありません。

カスタム DialectProvider を実際に作成する以外に、ORMLite にフィールドの JSON シリアル化を強制的に使用させる方法があるかどうか疑問に思っていました。これにより、利用可能な JSON パーサーを使用してフィールドを簡単に解析できます。

あるいは、Java の JSV パーサーでも同じことができます。

ありがとう

4

1 に答える 1

4

複雑な型をシリアル化するために OrmLite で使用される複雑な型シリアライザーは、プラグイン可能です。

//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.


私の知る限り、 JSV フォーマットの Java 実装はありませんが、 Java に移植したい場合に適切な出発点を提供するJavaScriptの単純な実装があります。

于 2013-02-26T20:18:12.120 に答える