C#JsonConvertDeserialization返回空值

时间:2015-12-20 13:22:34

标签: c# json json.net deserialization

我想了解为什么我为以下内容获取空值:

JSON:

{
  "IdentityService": {
    "IdentityTtlInSeconds": "90",
    "LookupDelayInMillis": "3000"
  }
}

班级:

public class IdentityService
{
    public string IdentityTtlInSeconds { get; set; }

    public string LookupDelayInMillis { get; set; }
}

跟:

  _identityService = JsonConvert.DeserializeObject<IdentityService>(itemAsString);

该类已实例化,但IdentityTtlInSeconds和LookupDelayInMillis的值为null。我不明白为什么他们应该

1 个答案:

答案 0 :(得分:6)

您还需要一个类 - 一个具有一个名为IdentityService的属性的对象:

public class RootObject
{
    public IdentityService IdentityService { get; set; }
}

您需要此类,因为您拥有的JSON具有一个名为IdentityService的属性,并且此对象具有两个属性,称为IdentityTtlInSecondsLookupDelayInMillis。如果您使用的是默认序列化程序,则您的类需要反映您在JSON字符串中的结构。

现在您可以使用它来反序列化您的字符串:

var rootObject = JsonConvert.DeserializeObject<RootObject>(itemAsString);
_identityService = rootObject.IdentityService;