JsonSerializer.Deserialize 无法转换数字

1ba*_*baz 1 c# json.net

我正在尝试使用以下命令将字符串转换为对象:

var body = JsonSerializer.Deserialize<LoginResponse>(bodyString);
Run Code Online (Sandbox Code Playgroud)

这是LoginResponse

class LoginResponse
{
  public string Token { get; set; }
  public int Expires { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

响应如下所示:

{"token":"longstring","expires":1676226606506}
Run Code Online (Sandbox Code Playgroud)

它抛出这个错误:

System.Text.Json.JsonException
  Message=The JSON value could not be converted to System.Int32. Path: $.expires | LineNumber: 0 | BytePositionInLine: 220.
  Source=System.Text.Json
Run Code Online (Sandbox Code Playgroud)

如何修复错误并JsonSerializer.Deserialize返回一个对象?

小智 7

您需要将 int 替换为 long,因为 1676226606506 比 int.MaxValue 大