2015-12-22 27 views
1

我正在使用Nest查詢與使用Newtonsoft.Json的相應屬性綁定的數據。JSON數據在反序列化過程中未與Dictionary屬性綁定

以下是未使用JSON數據填充的類的屬性。

[JsonExtensionData] 
IDictionary<long, ICollection<Tuple<string, byte[ ]>>> ImageMap { get; set; } 

但是,其他人被正確綁定。 我正在使用Newtonsoft.Json 7.0.1。

enter image description here

+0

請編輯您的問題,包括你正在嘗試反序列化JSON的。 –

回答

1

的問題是,你不適當地使用[JsonExtensionData]屬性。 [JsonExtensionData]旨在用於從您沒有明確定義類中的屬性的JSON中捕獲額外的數據。要正確使用它,您的班級中的字典必須聲明爲Dictionary<string, object>Dictionary<string, JToken>。 (對於一個簡單的例子見How to serialize a Dictionary as part of its parent object using Json.Net)。

然而,在你的情況,你有你的一類非常特殊的ImageMap財產其目的是從JSON相應imageMap財產捕獲數據。這根本不符合擴展數據的用例。刪除[JsonExtensionData]屬性並將其替換爲[JsonProperty("imageMap")];那麼它應該正確地反序列化。

[JsonProperty("imageMap")] 
public IDictionary<long, ICollection<Tuple<string, byte[]>>> ImageMap { get; set; } 

小提琴:https://dotnetfiddle.net/05J7Wo

+0

感謝您解釋JsonExtentionData的正確使用。 –