我正在使用WebService并以这种方式反序列化对象:
var content = JsonConvert.DeserializeObject<Member>(result);
这是JSON
{
"CREATE": [
{
"isValidMemberPassword": true,
"member_eid": 13
}],
"DATE": "2017-01-26 11:25:20"
}
这些是反序列化的类:
public class Member
{
public List<Create> Create { get; set; }
public string DATE { get; set; }
}
public class Create
{
public bool isValidMemberPassword { get; set; }
public int member_eid { get; set; }
}
问题是我的Create
对象没有使用收到的值创建。所有值均为null
。正确创建了Member
对象。我是C#的菜鸟。
答案 0 :(得分:1)
首先,对于JSON转换,您的属性必须与JSON代码的属性相同。如果您有转换的麻烦,可以使用json2csharp.com。
我发现JSON代码的属性不是正确的格式规则(camelcase中的属性名称)。要更正此问题,您可以使用属性JsonProperty
和第一个参数JSON属性名称。请参阅以下代码:
public class Member
{
[JsonProperty("CREATED")]
public List<Create> Created { get; set; }
[JsonProperty("DATE")]
public string Date { get; set; }
}
public class Create
{
[JsonProperty("isValidMemberPassword")]
public bool IsValidMemberPassword { get; set; }
[JsonProperty("member_eid")]
public int MemberEid { get; set; }
}
答案 1 :(得分:0)
请使用下面提到的课程
public class CREATE
{
public bool isValidMemberPassword { get; set; }
public int member_eid { get; set; }
}
public class RootObject
{
public List<CREATE> CREATE { get; set; }
public string DATE { get; set; }
}