我可以反序列化我的哈希值,但似乎无法将我的属性字段反序列化为我的属性类,这里是我的json对象
public class InterfaceObject
{
public string hash { get; set; }
Attribute attribute { get; set; }
}
public class Attribute
{
public string hash { get; set; }
public string role { get; set; }
public string status { get; set; }
public string cost { get; set; }
public string priorityNo { get; set; }
public string type { get; set; }
}
这是我的c#类
InterfaceObject ifa = JsonConvert.DeserializeObject<InterfaceObject>(message);
我能够在接口对象中反序列化哈希,但似乎无法反序列化我的属性类,这是我尝试反序列化我的对象
{{1}}
答案 0 :(得分:4)
您在public
媒体资源上遗漏了attribute
。如果不在属性上添加其他属性,Json.Net无法将值设置为private
属性。
public class InterfaceObject
{
public string hash { get; set; }
public Attribute attribute { get; set; }
}
添加public
即可。
答案 1 :(得分:0)
您的反序列化工作不正常的原因是,正如Crowcoder所指出的,attribute
是Gi1/0/1
的属性。你需要创建一个包罗万象的类来包含你已经创建的类来实现它。
这样的事情可以做到:
public class RootObject
{
public InterfaceObject iObject { get; set; }
}
public class InterfaceObject
{
public string hash { get; set; }
public Attribute attribute { get; set; }
}
public class Attribute
{
public string hash { get; set; }
public string role { get; set; }
public string status { get; set; }
public string cost { get; set; }
public string priorityNo { get; set; }
public string type { get; set; }
}
但是现在您已经更改了原始帖子,您应该能够以您拥有的方式解析它,假设您的JSON看起来像编辑后的版本。