获取json文件的内容不起作用

时间:2017-01-18 20:02:42

标签: json angular angular2-http

我想使用angular 2 http.get从json文件中获取json对象。我最终从文件中得到的是:

t_isScalar: falseoperator: tsource: t__proto__: Object

这是我的代码

@Injectable()
export class ValidateJSONSchemaService {

    constructor(private http: Http) { }

    getSchema(fileName): any {
        return(this.http.get(fileName)
            .map(this.extractData)
        );
    }

    private extractData(res: Response) {
        let body = res.json();
        return body.data || {};
    }
}

如何修复getSchema使其返回json对象而不是:t_isScalar: falseoperator: tsource: t__proto__: Object。请注意,当我更改文件名时,它返回相同的内容。我本来期望一个信息错误(我确实做错误处理,但代码永远不会出错)。

2 个答案:

答案 0 :(得分:2)

您需要subscribe来观察:

@Injectable()
export class ValidateJSONSchemaService {

    constructor(private http: Http) { }

    getSchema(fileName): any {
        return(this.http.get(fileName)
            .map(this.extractData).subscribe(data => console.log(data));
        );
    }

    private extractData(res: Response) {
        let body = res.json();
        return body.data || {};
    }
}

答案 1 :(得分:2)

除了Maciej的回答,您还可以使用为您订阅的| async管道。

<div>{{getSchmea('fileName') | async}}</div>