2016-12-07 5 views
1

私はangular2でJSONファイルを解析しようとしていますが、その方法はわかりません。angular2のjson内でjsonを解析する方法

user.service.ts

getInfo(): Observable<any>{ 
    let url= 'example.json'; 
    return this.http.get(url, options) 
        .map((res:Response) => res.json()) 
        .catch((error:any) => Observable.throw(error.json().error || 'retriving data failed')); 
} 

user.component.ts例のJSONファイルでそう

template: `<p>{{userInfoes.user_info.user_id}}</p>` 

export class USER{ 
getInfo(): void{ 

    this.userService.getInfo().subscribe(userInfoes =>this.userInfoes= userInfoes); 
}} 

example.json

{ 
    "task": "angular2", 
    "user_info": {"user_id": "yeehaah", "user_location": "canada"} 
} 

。プロパティは別のjsonです。マップを使ってjsonファイルを解析すると、それは一度だけ解析され、user_infoプロパティは文字列(json)のままになります。 構文解析されたexample.jsonは、別のjsonを残して何を意味するのかを説明しています。私は何をすべき、example.jsonファイルにuser_infoプロパティ内user_idを表示したい場合は

はexample.json

{ 
    task: "angular2", 
    user_info: {"user_id": "yeehaah", "user_location": "canada"} 
} 

を解析されましたか?

+0

"another json"とはどういう意味ですか?これらは* javascriptオブジェクト*なので、ペイロード全体のJSONを解析すると、さらに解析することなくアクセスできます。例: 'var id = user_info.user_id'または' var id = user_info ['user_id] ' –

+0

私は' console.log(user_info.user_id) 'を使っていましたが、それは定義されていませんと言います。 –

+0

JSONを解析する魔法はありません。 'JSON.parse'を使うと、解析されたJSONを返します。 –

答えて

-1

プロパティの前後に引用符を使用しないでください。user_iduser_locationこれを修正すると、jsonは正しく解析してuser_info.user_id=="yeehaah"となるはずです。

+0

こんにちは、ブライアント、元のファイル** example.json **の意味ですか? –

+0

はい、渡しているjsonは、正しくフォーマットされていないように見えます。 –

+0

ありがとう!!ブライアント:) –