C# 反序列化期间,JSON数据未与Dictionary属性绑定
我使用Nest查询数据,这些数据使用Newtonsoft.Json绑定到相应的属性 下面是未填充JSON数据的类的属性C# 反序列化期间,JSON数据未与Dictionary属性绑定,c#,json,
elasticsearch,json.net,nest,C#,Json,
elasticsearch,Json.net,Nest,我使用Nest查询数据,这些数据使用Newtonsoft.Json绑定到相应的属性 下面是未填充JSON数据的类的属性 [JsonExtensionData] IDictionary<long, ICollection<Tuple<string, byte[ ]>>> ImageMap { get; set; } [JsonExtensionData] IDictionary ImageMap{get;set;} 然而,其他人的约束是正确的。 我正在使用N
[JsonExtensionData]
IDictionary<long, ICollection<Tuple<string, byte[ ]>>> ImageMap { get; set; }
[JsonExtensionData]
IDictionary ImageMap{get;set;}
然而,其他人的约束是正确的。
我正在使用Newtonsoft.Json 7.0.1
问题在于您不正确地使用了
[JsonExtensionData]
属性[JsonExtensionData]
用于从JSON中捕获额外数据,您没有在类中明确定义这些数据的属性。要正确使用它,类中的字典必须声明为字典
或字典
。(有关简单示例,请参见。)
但是,在您的示例中,类中有一个非常特定的ImageMap
属性,用于从JSON中相应的ImageMap
属性捕获数据。这根本不适合扩展数据的用例。删除[JsonExtensionData]
属性,并将其替换为[JsonProperty(“imageMap”)]
;然后它应该正确地反序列化
[JsonProperty("imageMap")]
public IDictionary<long, ICollection<Tuple<string, byte[]>>> ImageMap { get; set; }
[JsonProperty(“imageMap”)]
公共IDictionary ImageMap{get;set;}
Fiddle:请编辑您的问题,以包含您试图反序列化的JSON。感谢您解释JsonExtentionData的正确用法。