角度2可观测json错误
上面的代码非常适合这个url 但不适用于此url角度2可观测json错误,json,angular,Json,Angular,上面的代码非常适合这个url 但不适用于此url 任何想法…TIA要使第二个有效,您需要使用 import { Injectable } from '@angular/core'; import { Http,Response } from '@angular/http'; import {Observable} from 'rxjs/Observable'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; im
任何想法…TIA要使第二个有效,您需要使用
import { Injectable } from '@angular/core';
import { Http,Response } from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
@Injectable()
export class CommentService{
private _url :string ="https://jsonplaceholder.typicode.com/posts"
constructor(private _http:Http){}
// method to fetch CommentS from a api service
getComments(){
return this._http.get(this._url)
.map((response:Response)=> response.json())
.catch(this._errorHandler);
}
_errorHandler(error:Response){
console.error(error);
return Observable.throw(error ||"Server Error");
}
}
因为在这种情况下,数据是对象数组类型的意思
完全是单一物体的物体
要使第二个有效,您需要使用
import { Injectable } from '@angular/core';
import { Http,Response } from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
@Injectable()
export class CommentService{
private _url :string ="https://jsonplaceholder.typicode.com/posts"
constructor(private _http:Http){}
// method to fetch CommentS from a api service
getComments(){
return this._http.get(this._url)
.map((response:Response)=> response.json())
.catch(this._errorHandler);
}
_errorHandler(error:Response){
console.error(error);
return Observable.throw(error ||"Server Error");
}
}
因为在这种情况下,数据是对象数组类型的意思
完全是单一物体的物体
Aravind在这里是正确的,但是
MRData
区分大小写,映射有点不正确。在这里映射响应的正确方法是:
return this._http.get(this._url)
.map((response:Response)=> response.MRDATA.json())
.catch(this._errorHandler);
}
您的组件:
return this._http.get(this._url)
.map((response:Response)=> response.json().MRData)
.catch(this._errorHandler);
}
然后您可以访问数据,例如:
getData() {
this.service.getData()
.subscribe(data => {
this.data = data;
});
}
系列:{{data?.Series}}
这是一个模拟JSON的演示,但我尝试了您提供的url,数据接收良好。因此,在您的应用程序中复制plunker应该可以正常工作:)
Aravind在这里是正确的,但是MRData
区分大小写,映射有点不正确。在这里映射响应的正确方法是:
return this._http.get(this._url)
.map((response:Response)=> response.MRDATA.json())
.catch(this._errorHandler);
}
您的组件:
return this._http.get(this._url)
.map((response:Response)=> response.json().MRData)
.catch(this._errorHandler);
}
然后您可以访问数据,例如:
getData() {
this.service.getData()
.subscribe(data => {
this.data = data;
});
}
系列:{{data?.Series}}
这是一个模拟JSON的演示,但我尝试了您提供的url,数据接收良好。因此,在您的应用程序中复制plunker应该可以正常工作:)
您能发布您遇到的错误吗?我的意思是,你应该使用https而不是http。我测试了第二个url,它运行正常。你能发布你遇到的错误吗?我的意思是,你应该使用https而不是http。我测试了第二个url,它运行正常。很棒的AJT82,我会尝试一下,非常感谢。进展如何?:)抱歉,我的回复太晚了。我如何深入到特定的基本节点,例如“DriverStandings”:[{“position”:“1”,…{“position”:“2”…等等,然后过滤上面的任何内容使其工作。最后…谢谢大家..这是我在get request json().MRData.StandingsTable.standingslist[0]中所做的唯一更改.DriverStandings令人敬畏的AJT_82,我将试一试,谢谢你,进展如何?:)很抱歉迟了回复..我如何深入到特定的基本节点,例如“DriverStandings”:[{“position”:“1”,…{“position”:“2”,…依此类推,然后过滤上面的任何内容,甚至可以让它工作..最后..谢谢大家..这是我在get request json().MRData.StandingsTable.standingslist[0]中所做的唯一更改