在我的 Angular 应用程序中,我正在向使用 json 对象响应的 URL 发出 $http.get() 请求。该对象包含一个偶尔非常大的值(例如 9106524608436223400)。查看 Chrome 中的网络分析器,我可以看到该数字正常下降,但是当 $http.get() 的回调命中时,该数字会有所损坏。我认为这是因为数字非常大而不是字符串。有什么方法可以让 Angular 正确处理此响应,或者我是否需要将服务器的输出包装为字符串?谢谢。
在尝试通过 JSON 从 Asp.Net C# 后端发送
UInt64
字段到我的 Angular 前端时,我遇到了类似的问题。收到的值四舍五入为最小的 3 位有效数字。
4070661594142490595 => 4070661594142490600
我能够使用设置为“
WriteAsString”的
System.Text.Json.Serialization.JsonNumberHandling
属性来解决它。
[Serializable]
public class MyStruct
{
[JsonNumberHandling(JsonNumberHandling.WriteAsString)]
public UInt64 ID { get; set; } = 0;
public int Data{ get; set; } = 0;
}
在 Angular 方面,当通过
http.get
接收 JSON 时,我使用 BigInt
作为相应的属性。
export interface MyStruct
{
readonly ID: BigInt;
readonly Data: number;
}