我已经在JSON中声明了以下key:value对:
"saleParameters": [
{"saleName":"FlashSale2018"},
]
我正在合约类中使用以下属性映射以上内容:
[JsonProperty("saleParameters")]
public IEnumerable<KeyValuePair<string,string>> SaleParameters { get; set; }
但是由于某种原因,我在反序列化之后总是在SaleParameters中收到空值。我正在使用NewtonSoft.JSON进行JSON序列化/反序列化,代码在.net核心上运行。
关于为什么发生这种情况以及如何解决这个问题的任何想法吗?
答案 0 :(得分:2)
问题在于您的current code expects JSON like this:
"saleParameters": [
{"Key": "saleName", "Value": "FlashSale2018"}]
]
您应该改用字典:
public IEnumerable<IDictionary<string,string>> SaleParameters { get; set; }
这将反序列化“ saleName”作为它们的键,并将“ FlashSale2018”作为值。而且,如果您确实需要IEnumerable<KeyValuePair<string, string>>
,可以致电SaleParameters.SelectMany(p => p). ToEnumerable()
。