【发布时间】:2021-06-18 12:06:18
【问题描述】:
我正在使用一个返回如下字符串的 API:
{
"id": "835166796775451164",
"username": "˞˞˞˞˞˞˞˞˞˞˞˞˞˞˞˞˞˞˞˞",
"avatar": "x",
"discriminator": "1391",
"public_flags": 0,
"flags": 0,
"purchased_flags": 2,
"locale": "en-US",
"nsfw_allowed": true,
"mfa_enabled": false,
"premium_type": 2,
"email": "x",
"verified": false,
"phone": null
}
以及反序列化此 JSON 的对象:
public class User
{
[JsonProperty(PropertyName ="id")]
public string Id { get; set; }
[JsonProperty(PropertyName = "username")]
public string Username { get; set; }
[JsonProperty(PropertyName = "email")]
public string Email { get; set; }
[JsonProperty(PropertyName = "discriminator")]
public string Discriminator { get; set; }
[JsonProperty(PropertyName ="phone")]
public string Phone { get; set; }
[JsonProperty(PropertyName ="verfied")]
public string Verified { get; set; }
}
但是,当我尝试将接收到的 JSON 字符串反序列化为该对象并调用它时,它返回一个“null”值。这是我的反序列化代码:
if (responseHtml.IsSuccessStatusCode)
{
var json = await responseHtml.Content.ReadAsStringAsync();
User user= JsonConvert.DeserializeObject<User>(json);
}
我还尝试从 Deserialization of JSON.Net returns 'null' 制作一个包装器:
public class UserWrapper
{
public User User { get; set; }
}
但它也返回了一个空值
static async Task Main(string[] args)
{
await utilities.FetchAccountInformation();
Models.User user= new Models.User();
Console.WriteLine(user.Username);
}
【问题讨论】: