json - Angular 7 http.post JSON 数字作为字符串发送
问题描述
我有一个使用“数字”类型的属性(超时)定义的 Angular 类:
export class EngineSpec {
name: string;
base_url: string;
version: string;
timeout: number;
tls: boolean = false;
user_agent: string;
}
但是,当我 http.post 此类的实例时,该属性作为字符串发送:
{"tls":false,
"name":"local-vm",
"base_url":"http://localhost:2367",
"version":"1.3",
"timeout":"60"
}
任何想法为什么将数字作为 JSON 字符串发送?
解决方案
事实证明,这可能是 Material Angular 的问题。以前我没有在输入元素上指定“类型”。当我添加“type = number”(如下所示)时,JSON 将 timout 表示为一个数字。我认为,由于底层类将超时表示为数字,因此流程管道中的某些内容会将输入转换为数字。无论如何,在输入元素上指定类型解决了我的问题。
<mat-form-field>
<input matInput #input [readonly]="editing?null:''" [(ngModel)]="engineSpec.timeout" placeholder="Timeout" type="number"/>
<mat-hint align="end">Enter timeout (in seconds) for API calls to this engine.</mat-hint>
</mat-form-field>
推荐阅读
- square-connect - 如果我在网站上添加订单,最新的 API 是否会将订单推送到我的商店的 POS 终端?
- python - 如何在 Qtablewidget Python 中设置自定义键盘按键事件?
- javascript - 通过变量获取对象的多维值
- javascript - 反应:为什么任务没有出现?
- c# - 正则表达式匹配字符串中间的子字符串
- python - 使用 python 格式化 UNIX 命令输出
- node.js - Firebase with Node,“以浏览器为目标的 Firebase 包”
- apache - Sharepoint 服务器上的 Apache 反向代理如何保留代理端口
- r - 在 purrr:::pmap 中打印当前 data.frame 行又名进度
- java - 从服务器上的文件中解析 json