2016-07-12 38 views
2

私はPythonの背景から来て、最近はTypeScriptとAngular2を使ってプログラミングを始めました。 TypeScriptを使用してJSONオブジェクトからキーを取得する方法を知りたい。 私はそうのような応答があります:私はJson操作TypeScript角度2

removeMetaData (my_data: string){ 
    //(Various manipulation)...etc 
} 

関数にこのオブジェクトを渡す

response.text() 

を私が代わりにtext()json()メソッドを呼び出すことができることを読みました。私がそうするなら、私はmy_dataのために使うべきタイプは何ですか?

その後、 は私のJSONは次のようになります場合:

{ 
    "count": 100, 
    "next_page": "http://www.test.com/users/?page=2", 
    "prev_page": "http://www.test.com/users/?page=3", 
    "results":[ 
    { 
      "username": "johnny" 
    }, 
    Etc.... 

    ] 

がどのように私はそれを解析していますか? 私はインターフェイスを使用しなければならないかもしれないが、私は方法を理解していないと読んだ。

Pythonでは辞書のキーを取得するのにちょうどresponse["next_page"]だから、その値をクラス内の変数に割り当てることができます。それはまさに私がコンポーネント内で達成しようとしていることです。

ありがとうございます。

ADDITION

list() { 
    this.requestService.get(this.api_path) 
    .subscribe(
    response => this.populate(response.json()), 
    error => this.response = error.text() 
    ) 

} 

populate(payload: object) { 
    this.count = payload.count; 
    this.next = payload.next; 
    this.previous = payload.previous; 
    *payload.results => this.users = payload.results;****** 
} 

答えて

2

値オブジェクトとして使用されるインターフェイスを宣言だろう。

export interface IPage 
{ 
count:number; 
next_page:string; 
prev_page:string; 
results:Array<any>; 
... 
... 
} 

var my_data:IPage; 

my_dataに解析されたJSON値を割り当て、とのすべてのプロパティにアクセスします「」オペレータはmy_data.count, my_data.resultsです。

気軽に質問を投げてください。

+0

あなたの答えが気に入っていますが、私が何をやっているのか理解したいのですが、星印の付いた線が間違っていると教えてください。 –

+0

あなたの解析されたJSONで 'results'が利用可能で、 'users'があなたのクラスで宣言されている場合、それはまったく問題ありません。 「ユーザー」には、「結果」からの価値を受け入れるための正しいデータ型が必要であることに留意してください。 矢印機能を使用している場合は、次のようになります。 (payload.results)=> this.users = payload.results; –

1

私はそれを行う場合、私はmy_dataに使用するタイプは何ですか?

これは単なるjavascriptオブジェクトです。一例として、

あなたJSONのように見える場合:

{ 
    "foo": { 
    "bar": "bas" 
    } 
} 

その後(変数someObjで)解析されたJSONの値someObj.foo.barbas