4

angular2が生のjson応答を返すことは可能ですか? 元。

成分

getrawJson(){
    this.someservice.searchJson()
    .subscribe( somelist => this.somelist = somelist,
                 error => this.errorMsg = <any>error);
}

サービス用

    searchJson(num: number, somestring: string, somestring2: string): Observable<stringDataObj> {

        let body = JSON.stringify({"someJsonData"[{num, somestring, somestring2}]}); 
        let headers = new Headers({ 'Content-Type': 'application/json' });
        let options = new RequestOptions({ headers: headers });


        return this.http.post(URL, body, options)
                        .map(this.jsonObj)
                        .catch(this.handleError);

      }


private jsonObj(res: Response) {
    let body;
    return body{ };
}

上記の実装は Array を返します。サービスから返された生の json データを取得する方法はありますか? 以下のようなjson応答があることを期待しています

{ "dataParam": [ { "num": "08", "somestring": "2016-10-03", "somestring2": "2016-10-03" }], "someDatalist": [ { "1" : "08", "2": 1, "3": "2016-10-03" }] }

ありがとう!

4

2 に答える 2

3

はい、もちろんできます!!

実際には、Observableangualar2 は angular1.x のように promise の代わりに Response の形式で返すため、そのオブザーバブルを生の Json 形式に変換するには、angular2 のデフォルト メソッドを使用する必要があります。

res.json()

.json()詳細については、ここで説明できる angular によって提供される以外の方法はありません。

メソッドが含まれます

  • res.text()
  • res.status
  • res.statusText など

https://angular.io/docs/ts/latest/api/http/index/Response-class.html

アップデート

このようにコードを使用してください

return this.http.post(URL, body, options)
                        .map(res => {return res.json()})
                        .catch(this.handleError);

      }
于 2016-10-19T17:35:18.937 に答える
0
private jsonObj(res: Response) {
    return res.json() || {} ;
}
于 2016-10-19T17:25:12.050 に答える