我正在使用Nest查詢與使用Newtonsoft.Json的相應屬性綁定的數據。JSON數據在反序列化過程中未與Dictionary屬性綁定
以下是未使用JSON數據填充的類的屬性。
[JsonExtensionData]
IDictionary<long, ICollection<Tuple<string, byte[ ]>>> ImageMap { get; set; }
但是,其他人被正確綁定。 我正在使用Newtonsoft.Json 7.0.1。
我正在使用Nest查詢與使用Newtonsoft.Json的相應屬性綁定的數據。JSON數據在反序列化過程中未與Dictionary屬性綁定
以下是未使用JSON數據填充的類的屬性。
[JsonExtensionData]
IDictionary<long, ICollection<Tuple<string, byte[ ]>>> ImageMap { get; set; }
但是,其他人被正確綁定。 我正在使用Newtonsoft.Json 7.0.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; }
感謝您解釋JsonExtentionData的正確使用。 –
請編輯您的問題,包括你正在嘗試反序列化JSON的。 –