簡體   English   中英

在沒有JsonProperty的情況下將JSON解析為類

[英]Parse JSON into class without JsonProperty

示例數據:

{
  "status": "success",
  "data": {
    "01234": {
      "001": "20",
      "123": "10"
    },
    "56789": {
      "001": "100",
      "328": "5"
    }
  }
}

我想檢查以確保“ status” =“ success”,如果是,則將“ data”展平為更多的關系結構,以存儲在關系數據庫中。 從上面看起來像:

Product Location  Quantity
01234   001       20
01234   123       10
56789   001       100
56789   328       5

我的理解是,由於“ 01234”和“ 56789”將發生變化,因此我將無法創建要反序列化為使用JsonProperty的類。

我該如何將其反序列化為類? 不使用類進行反序列化會更容易嗎?

編輯

我能夠根據接受的答案使它正常工作,但是想知道為什么這不起作用(這是我在發布此問題之前所嘗試的):

public class FindResponse { 
    [JsonProperty("status")] 
    public string status { get; set; } 
    [JsonProperty("data")] 
    public FindResponseData data { get; set; } 
} 

public class FindResponseData { 
    public Dictionary<string, Dictionary<string, int>> sku { get; set; } 
} 

//This doesn't work; the "data" in the "result" object was null. 
var result = JsonConvert.DeserializeObject<FindResponse>(skusJson);

您可以如下創建一個類,並在反序列化之后嘗試使用字典值映射數據。 可能不是更好的方法,但它將適合您的數據模型。

public class MyClass {
        public string Status { get; set; }
        public Dictionary<string, Dictionary<string, string>> Data { get; set; }
    }

   //and then
   var data = JsonConvert.DeserializeObject<MyClass>(jsonContent);

暫無
暫無

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

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