使用json.net反序列化静态属性?

时间:2014-03-24 09:33:57

标签: c# json json.net

大家好我有一个类似下面的JSON

{
  "totals": {
    "tokenType": "string",
    "tokenDenomination": "double",
    "count": "int"
  },
  "IDCode": "string",
  "Key": "string"
}

和要反序列化到对象的c#代码是

internal class GetTokenRootInfo
{
    public  static Totals totals{ get; set;}
    public  static string IDCode{ get; set;}
    public  static string Key{ get; set;}
}

当我使用jsonconvert.DeserializeObject<gettokenrootinfo>(json);时 没有设置,每个var都是null。

但如果我删除静态类型,那么一切正常。

在反序列化对象时,是否可以告诉我静态类型无效的原因?

1 个答案:

答案 0 :(得分:5)

如果您确实要反序列化到类上的静态成员,可以使用[JsonProperty]属性明确标记它们,这样就可以使用它:

internal class GetTokenRootInfo
{
    [JsonProperty("totals")]
    public static Totals totals { get; set; }
    [JsonProperty("IDCode")]
    public static string IDCode { get; set; }
    [JsonProperty("Key")]
    public static string Key { get; set; }
}