【发布时间】:2015-01-04 02:12:44
【问题描述】:
我似乎无法解析一些 json 来将其转换为模型。
JSON:
{
"status":"ok",
"count":100,
"data":[
{"nickname":"God","id":null,"account_id":1000076613},
{"nickname":"god0","id":null,"account_id":1005460397},
{"nickname":"god1father","id":null,"account_id":1002495621},
{"nickname":"God1Hand","id":null,"account_id":1003183995}]
}
我的模特:
public class UserModel
{
public List<User> Users;
}
public class User
{
public int AccountId { get; set; }
public string Nickname { get; set; }
public string Id { get; set; }
}
我的班级:
var client = new HttpClient();
var task = await client.GetAsync(APIWebAddress);
var jsonstring = await task.Content.ReadAsStringAsync();
if (jsonstring == null) return null;
var serializer = new JavaScriptSerializer();
UserModel model = serializer.Deserialize<UserModel>(jsonstring);
我遇到的问题是序列化程序。它没有正确返回模型,导致我稍后在尝试查看数据时得到空引用异常。我尝试过使用 JavaScriptSerializer 和 Json.Net 反序列化器。
【问题讨论】:
-
您的数据模型不包含
status和count的类型,尽管您可能并不关心这些。无论哪种方式,包含用户的列表都称为data,但在您的模型中,它称为Users。尝试改变它? -
如果
jsonstring为空,您的第四行将返回空。您确定jsonstring那时不为空吗?如果是这样,那么您使用哪个序列化程序并不重要,因为它永远不会到达那里。 -
另外,你有
AccountId而不是account_id。
标签: c# asp.net-mvc json