【发布时间】:2019-11-03 12:34:43
【问题描述】:
接收 JSON 负载时,我只接收第一个对象中的值。
在 PHP 方面,一切似乎都很好。我构造了一个基本的两口袋关联数组。在浏览器中,JSON 编码对象似乎是正确的,响应负载(来自浏览器的网络选项卡。)在 JSON 验证器中进行验证。
这是打印到屏幕上的 PHP $info 数组:
(
[0] => Array
(
[id] => 3
[first] => June
[last] => Cleaver
)
[1] => Array
(
[hvp] => 1
[rd] => 1
[th] => 1
)
)
echo json_encode($info, JSON_FORCE_OBJECT);
这是成功验证的 JSON 对象:
[
{
"id":"3",
"first":"June",
"last":"Cleaver"
},
{
"hvp":"1",
"rd":"1",
"th":"1"
}
]
响应负载(来自浏览器的网络选项卡。):
[{"id":"3","first":"June","last":"Cleaver"},
{"hvp":"1","rd":"1","th":"1"}]
当我通过 Angular API 服务获取负载时,第二个 Object 是空的。
Object(2)
0: Object { id: "3", first: "June", last: "Cleaver" }
1: Object {}
我期待:
Object(2)
0: Object { id: "3", first: "June", last: "Cleaver" }
1: Object { hvp: "1", rd: "1", th: "1" }
以下是 Angular 中负责获取 API 数据的两个代码块。第一个在有问题的 component.ts 文件中:
ngOnInit() {
this.apiService.readPolicies().subscribe((policies:
Policy[])=>{this.policies = policies;)
console.log(this.policies);
}
这在 api.service.ts 文件中:
readPolicies():Observable<Policy[{
return this.httpClient.get<Policy[(`${this.PHP_API_SERVER}
/read.php`);
}
read.php 文件似乎完全符合预期,所以我没有发布它。
政策.ts
export interface Policy {
id: number,
first: string,
last: string,
hvp?: string,
rd?: string,
th?: string
}
为了说明我的问题,Observable 显然看到了两个对象,但为什么第二个对象中没有键/值对?
【问题讨论】: