2017-08-31 9 views
0

文字列をJSON呼び出しのパスに戻したいとします。しかし、このJSON呼び出しには多くの変数があります。httpコール角度4の1つのjson文字列を返す

@Injectable() 
export class ImageHolderService { 

    private studentPath: string; 

    constructor(private http: HttpUtil, private appConstants: AppConstants){ 

    } 

    getAvatar():string { 
     return this.http.get(this.appConstants.GRAVTAR_URL_FOR_PROFILE_IMAGE+"/leaderbaord").subscribe()(response => { 

      }); 
    } 

} 

どのように私は次のようなJSON呼び出しから文字列を返すことができます。

はJSONが正しく、これはほんの少しの例であると仮定します

[ { 
    "sumsPointValue" : 95, 
    "student" : { 
    "id" : 1, 
    "studentName" : "Joe Buck", 
    "linkedInProfile" : "http://linkedin.com", 
    "twitterProfile" : null, 
    "githubProfile" : "http://github.com", 
    "stackoverflowProfile" : "http://stackoverflow.com", 
    "email" : "[email protected]", 
    "teachableId" : null, 
    "teachableSchoolId" : null, 
    "studentImage" : null, 
    "studentLevel" : { 
     "id" : 1, 
     "awardDate" : "2017-08-31T18:13:38.688-04:00", 
     "level" : { 
     "id" : 1, 
     "description" : "This guy is on Level 0 description which is being pulled from the database and representing a longer than average text string to ensure the view is properly working.", 
     "imageName" : "guru-level-0.png", 
     "levelNumber" : 0, 
     "created" : "2017-08-31T22:13:38.570+0000", 
     "updated" : "2017-08-31T22:13:38.570+0000" 
     }, 
     "created" : "2017-08-31T22:13:38.694+0000", 
     "updated" : "2017-08-31T22:13:38.695+0000" 
    }, 
    "created" : "2017-08-31T22:13:38.684+0000", 
    "updated" : "2017-08-31T22:13:38.824+0000" 
    }, 
    "studentLevelImagePath" : "../assets/images/level/level-0.png", 
    "studentImagePath" : "../assets/images/avatar.png", 
    "kudosGiven" : 0, 
    "badgesEarned" : 2, 
    "kudosRecieved" : 0 
}, 

私は"studentImagePath" : "../assets/images/avatar.png",

をしたいです

----------------更新1 ----------------

しました次

あった、使用しているとき私にエラーを与えた
getAvatar():string { 
     return <string>this.http.get(this.appConstants.GRAVTAR_URL_FOR_PROFILE_IMAGE + "/leaderbaord").map(response => response.json()).subscribe(data => { 
      console.log(data.studentImagePath); 
     }); 
    } 

common/image.holder/imageHolderService.ts (12,16): Type 'Subscription' cannot be converted to type 'string'.

私は次のようにそれを使用:

constructor(private leaderBoardService: LeaderBoardService, private userPicture: ImageHolderService) { } 

    ngOnInit() { 
     this.subscribeLeaderBoardDataFromStore(); 
     this.pictureOfUser = this.userPicture.getAvatar(); 
    } 
+0

オブジェクトの配列を取得していますか、または1つのオブジェクトだけを取得していますか?それがオブジェクトの配列なら、何をしたいですか?文字列配列ですか?あなたのJSONは '['で始まっているので、配列が入っているようですが、私には少し不明です:) – Alex

答えて

0

私は、これは動作するはずだと思います。

this.http.get(this.appConstants.GRAVTAR_URL_FOR_PROFILE_IMAGE+"/leaderbaord").map(res => res.json()).subscribe(data => { 
    console.log(data.studentImagePath); 
}); 
+0

あなたの時間をありがとう。 – Drew1208

+0

https://stackoverflow.com/a/40205651/5592752の最初の回答は役に立ちますか? – Chris

関連する問題