【发布时间】:2019-04-01 20:11:43
【问题描述】:
我目前正在尝试解析一些 JSON 数据。这是我得到的 JSON 字符串的格式:
{
"messageFormat": "JSON",
"messageArguments": [
{
"signUpModal": {
"Id": 0,
"FirstName": null,
"LastName": null,
"UserName": null,
"Email": "<email address>",
"RoleId": null,
"Password": "<password>",
"IsActive": null,
"SecretKey": null,
"Token": null,
"Role": null,
"RolePermissions": null,
"ImagePath": null,
"CurrentDate": null
}
}
]
}
我创建了两个类来匹配这个数据结构:
public class Parameter
{
public string messageFormat { get; set; }
public List<SignUpModal> messageArguments { get; set; }
}
public class SignUpModal
{
public int? Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public int? RoleId { get; set; }
public string Password { get; set; }
public bool? IsActive { get; set; }
public int? SecretKey { get; set; }
public string Token { get; set; }
public string Role { get; set; }
public string RolePermissions { get; set; }
public string ImagePath { get; set; }
public string CurrentDate { get; set; }
}
现在,当我使用 var param = JsonConvert.DeserializeObject<Parameter>(tempData); 时,不会出现任何错误,并且 MessageFormat 归档正确显示“JSON”。 MessageArguments 字段还包含SignUpModal 类的一个实例,但是SignUpModal 类中的所有字段都是null。
我尝试过以各种方式修改类结构,但数据甚至不会反序列化。我不确定为什么没有正确提取 messageArguments 字段的数据。任何帮助/建议将不胜感激。
【问题讨论】:
-
您在数组
messageArguments中的对象不是SignUpModal,而是具有signUpModal属性的对象,即SignUpModal -
将您的代码与生成的代码进行比较:json2csharp.com