documentDb の C# poco のデフォルトのシリアル化を変更することは可能ですか? たとえば、id プロパティは小文字にする必要があるようですが、Id プロパティのデフォルトのシリアル化は大文字です。理想的には、すべての json プロパティを小文字で開始する必要があります。これまでに見つけた唯一の方法は、プロパティを [JsonProperty(PropertyName = "id")] で装飾することですが、あまりエレガントではありません。
2 に答える
現在、DocumentDB の既定のシリアライザーを変更することはできませんが、独自のライブラリまたは JSON.NET を使用してシリアライズし、次のようにして JSON 文字列をコレクションに格納できます。
await client.CreateDocumentAsync(collectionLink, Resource.LoadFrom<Document>(stream));
ストリームをjson文字列にストリーミングします(ファイルから、またはメモリ内文字列などから)。詳細については、以前はここにあった私のブログ投稿のインターネット アーカイブ版をご覧ください。
編集: JSON シリアライザーの設定は、DocumentDB .NET SDK 1.16.0 以降でサポートされています。https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-sdk-dotnet
DocumentDB ドキュメントで小文字またはキャメル ケースのプロパティを取得するいくつかの方法を次に示します。
あなたが言ったように使用
[JsonProperty(PropertyName = "id")]
してください。POCO の C# プロパティを小文字に変更します。
Id プロパティを持つDocumentDB .NET Library
Microsoft.Azure.Documents.Document
からPOCO を拡張します (舞台裏で使用すると思われます)。[JsonProperty(PropertyName = "id")]
デフォルトのシリアライザを使用する代わりに、Json.NETライブラリを使用して、そのキャメル ケース リゾルバを使用してシリアル化できます。Mats Karlsson は、これに関する非常に優れたブログ記事をここに掲載しています: http://www.matskarlsson.se/blog/serialize-net-objects-as-camelcase-json
編集: JSON シリアライザーの設定は、DocumentDB .NET SDK 1.16.0 以降でサポートされています。https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-sdk-dotnet