将JSON解析为没有JsonProperty

时间:2017-03-01 09:42:50

标签: c# json.net json-deserialization

示例数据:

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

我想检查以确保"状态" ="成功"如果是这样的话,那么就会压平数据"更多关系结构存储在关系数据库中。从上面看,它看起来像:

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);

1 个答案:

答案 0 :(得分:2)

您可以创建如下所示的类,并尝试使用deserialization之后的字典值映射数据。可能不是更好的方法,但它适合您的数据模型。

absolute