![](/img/trans.png)
[英]How to set part of Json.Net JsonProperty attribute in a derived class without replacing the JsonProperty in the base?
[英]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.