Javascript 在typescript中将json对象转换为类类型数组时出错
我从服务中获取json对象,我想迭代到这个json对象并填充类类型的数组。 下面是调用该服务的代码Javascript 在typescript中将json对象转换为类类型数组时出错,javascript,arrays,json,angular,Javascript,Arrays,Json,Angular,我从服务中获取json对象,我想迭代到这个json对象并填充类类型的数组。 下面是调用该服务的代码 public GetMapData(): Observable<Response> { var path = 'http://my.blog.net/blog.php?type=trendingDestiny'; return this.http.get(path) .map((response: Response) => {
public GetMapData(): Observable<Response> {
var path = 'http://my.blog.net/blog.php?type=trendingDestiny';
return this.http.get(path)
.map((response: Response) => {
if (response.status === 204) {
return undefined;
} else {
return response.json();
}
});
}
self.blogapi.GetMapData().subscribe(
x => {
this.MapData = x;
console.log("MapData", this.MapData);
});
下面是typescript代码
this.MapData.forEach(map => {
this.Mapdatalist.push({
postid: map.post_id,
regionname: map.region_name,
longitude: map.longitude
});
});
或者我也试过了
for (let data of this.MapData)
{
console.log("error",data);
}
但什么都不管用。这给了我错误
错误类型错误:无法读取未定义的属性“forEach”
请帮助解决问题。请检查是否已将响应分配给“this.MapData”。我已经创建了相同的场景,它正在工作。可能是“this.MapData”未正确声明和定义。
this.MapData
未定义。您如何从服务获取此json对象?这段代码是什么样子的?@Shubham this.mapdata在html中使用ngfor时有数据。this.mapdata或this.mapdata?@C.jacking尝试在控制台中记录this.mapdata
,并检查您得到了什么。@C.jacking请使用jquery库获取$。每个函数我也做了与您相同的操作,我也可以在控制台中看到this.MapData,但它仍然给了我一个错误。我可以进一步将这个数组创建为json吗?
var array= [
{
"post_id": 77,
"post_title": "Delhi",
"post_content": "DelhiDelhiDelhi",
"post_date": "2017-07-24 11:47:08",
"imageurl": false,
"cat_name": [
{
"term_id": 7,
"name": "FOODIE",
"slug": "foodie",
"category_parent": 0
}
],
"longitude": "75.857849",
"latitude": "33.888586",
"region_name": "Asia"
},
{
"post_id": 75,
"post_title": "Goa",
"post_content": "this is goa",
"post_date": "2017-07-24 11:03:59",
"imageurl": false,
"cat_name": [
{
"term_id": 7,
"name": "FOODIE",
"slug": "foodie",
"category_parent": 0
}
],
"longitude": "75.857849",
"latitude": "33.888586",
"region_name": "Asia"
}];
//console.log(array);
var mapdata = [];
$.each(array,function(i,v){
mapdata.push({"postid":v.post_id,"regionname":v.region_name,"longitude":v.longitude});
})
console.log(mapdata);
var array= [
{
"post_id": 77,
"post_title": "Delhi",
"post_content": "DelhiDelhiDelhi",
"post_date": "2017-07-24 11:47:08",
"imageurl": false,
"cat_name": [
{
"term_id": 7,
"name": "FOODIE",
"slug": "foodie",
"category_parent": 0
}
],
"longitude": "75.857849",
"latitude": "33.888586",
"region_name": "Asia"
},
{
"post_id": 75,
"post_title": "Goa",
"post_content": "this is goa",
"post_date": "2017-07-24 11:03:59",
"imageurl": false,
"cat_name": [
{
"term_id": 7,
"name": "FOODIE",
"slug": "foodie",
"category_parent": 0
}
],
"longitude": "75.857849",
"latitude": "33.888586",
"region_name": "Asia"
}];
//console.log(array);
var mapdata = [];
$.each(array,function(i,v){
mapdata.push({"postid":v.post_id,"regionname":v.region_name,"longitude":v.longitude});
})
console.log(mapdata);