[英]Setting a custom json converter for DocumentDb
我使用類型化的DocumentQuery從Azure DocumentDb的集合中讀取文檔。
from f in client.CreateDocumentQuery<MyModel>(Collection.SelfLink) select f
因為我找不到如何設置neccesarry自定義json轉換器的方法,所以它拋出了這個例子:
無法創建AbstractObject類型的實例。 Type是接口或抽象類,無法實例化。
通常你會做這樣的事情來使它工作:
var settings = new JsonSerializerSettings();
settings.Converters.Add(new MyAbstractConverter());
client.SerializerSettings = settings;
DocumentClient沒有任何SerializerSettings。 所以問題是,如何在將json數據反序列化到我的模型時告訴DocumentDB客戶端它必須使用自定義轉換器?
您可以將[JsonConverter(typeof(MyAbstractConverter))]
到模型類中。
這是一個帶有自定義Json設置的示例模型類:
namespace DocumentDB.Samples.Twitter
{
using System;
using System.Collections.Generic;
using System.Linq;
using DocumentDB.Samples.Shared.Util;
using Newtonsoft;
using Newtonsoft.Json;
/// <summary>
/// Represents a user.
/// </summary>
public class User
{
[JsonProperty("id")]
public long UserId { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("screen_name")]
public string ScreenName { get; set; }
[JsonProperty("created_at")]
[JsonConverter(typeof(UnixDateTimeConverter))]
public DateTime CreatedAt { get; set; }
[JsonProperty("followers_count")]
public int FollowersCount { get; set; }
[JsonProperty("friends_count")]
public int FriendsCount { get; set; }
[JsonProperty("favourites_count")]
public int FavouritesCount { get; set; }
}
}
最新的CosmosDB SDK現在包含對JsonSerializerSettings
支持,因此您不必再使用JsonConverter,您可以使用自己的ContractResolver
。 查看相關的SO帖子 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.