簡體   English   中英

JSON 反序列化為 KeyValuePair 返回 {null,null}

[英]JSON deserialization returns {null,null} for KeyValuePair

我已經在 J​​SON 中聲明了以下鍵:值對:

"saleParameters": [
        {"saleName":"FlashSale2018"},
  ]

我在我的合同類中使用以下屬性映射上述內容:

    [JsonProperty("saleParameters")]
    public IEnumerable<KeyValuePair<string,string>> SaleParameters { get; set; }

但是由於某種原因,反序列化后我總是在 SaleParameters 中收到空值。 我正在使用 NewtonSoft.JSON 進行 JSON 序列化/反序列化,代碼在 .net 核心上運行。

關於為什么會發生這種情況以及如何解決這個問題的任何想法?

問題是您當前的代碼需要這樣的 JSON

"saleParameters": [
    {"Key": "saleName", "Value": "FlashSale2018"}]
]

您應該改用字典:

public IEnumerable<IDictionary<string,string>> SaleParameters { get; set; }

這將反序列化“saleName”作為它們的鍵和“FlashSale2018”作為值。 而且,如果你真的需要IEnumerable<KeyValuePair<string, string>> ,你可以調用SaleParameters.SelectMany(p => p). ToEnumerable() SaleParameters.SelectMany(p => p). ToEnumerable()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM