我有这个嵌套的json,我从我的服务电话获取
{
"id": "7979d0c78074638bbdf739ffdf285c7e1c74a691",
"seatbid": [{
"bid": [{
"id": "C1X1486125445685",
"impid": "12345",
"price": 0,
"adm": {
"native": {
"link": {
"url": "http: //i.am.a/URL"
},
"assets": [{
"id": "001",
"required": 1,
"title": {
"text": "Learn about this awesome thing"
}
}],
"imptrackers": ["https://trks.c1exchange.com/trk/c?pid=123&et=i&profileid=123&siteid=12345&adslot=AUM&adsize=300x250&imprtype=IMAGE&cpm=0.0&dspcid=834&rndid=368997882&adomain=[c1exchange.com]&urid=8787893965303118897&uimprid=2063341746607836879&urespid=0"]
}
},
"adomain": ["c1exchange.com"],
"cid": "834"
}]
}],
"cur": "USD"
}{
"id": "7979d0c78074638bbdf739ffdf285c7e1c74a691",
"seatbid": [{
"bid": [{
"id": "C1X1486125445685",
"impid": "12345",
"price": 0,
"adm": {
"native": {
"link": {
"url": "http: //i.am.a/URL"
},
"assets": [{
"id": "001",
"required": 1,
"title": {
"text": "Learn about this awesome thing"
}
}],
"imptrackers": ["https://trks.c1exchange.com/trk/c?pid=123&et=i&profileid=123&siteid=12345&adslot=AUM&adsize=300x250&imprtype=IMAGE&cpm=0.0&dspcid=834&rndid=368997882&adomain=[c1exchange.com]&urid=8787893965303118897&uimprid=2063341746607836879&urespid=0"]
}
},
"adomain": ["c1exchange.com"],
"cid": "834"
}]
}],
"cur": "USD"
}
问题是我想在我的组件中使用它而没有相同的数据模型
目前在我的组件中
ngOnInit() {
this.weatherService.getPocData().subscribe( res => {
this.openRtbResponse = res.openRtbResponse;
});
}
并在我的模板中
{{openRtbResponse | json}}
我可以访问它。
但是现在当我想要像这样访问嵌套值时,它会给出未定义的类似
this.openRtbResponse.seatbid[0].bid[0].adm.native.assets[0].id
它抛出错误。
没有数据模型我不能使用json值
答案 0 :(得分:0)
Typescript是Javascript的超集,所以任何未明确输入的都是any
类型 - 这实际上意味着它是你的“传统”Javascript对象。
您应该能够在没有支持类型的情况下访问这些属性。我猜你是在试图过早访问它或者路径错误,这会给你错误。
直接回答您的问题:是的,您应该可以访问该问题。
答案 1 :(得分:0)
您必须像这样在请求响应上调用.json()
才能拥有JSON对象:
function getPocData() {
return http.get('friends.json')
.map(response => response.json());
}
请务必在getPocData()
的{{1}}功能中进行。