【问题标题】:Accessing _embedded in Json Response在 Json 响应中访问 _embedded
【发布时间】:2019-08-19 18:50:59
【问题描述】:

在 Angular 中访问 Json 中的 _embedded 属性时遇到问题。甚至可能吗? 使用 Spring-Data-Jpa 创建的 Json 响应如下所示:

{
"_embedded": {
    "reviews": [
        {
            "author": "Anonymous",
            "content": "This movie sucks",
            "upvotes": 0,
            "downvotes": 0,
            "_links": {
                "self": {
                    "href": "http://localhost:8080/api/reviews/1"
                },
                "review": {
                    "href": "http://localhost:8080/api/reviews/1"
                },
                "film": {
                    "href": "http://localhost:8080/api/reviews/1/film"
                }
            }
        }, ...
    ]
},
"_links": {
    "self": {
        "href": "http://localhost:8080/api/reviews{?page,size,sort}",
        "templated": true
    },
    "profile": {
        "href": "http://localhost:8080/api/profile/reviews"
    }
},
"page": {
    "size": 20,
    "totalElements": 6,
    "totalPages": 1,
    "number": 0
}

} 从我的客户端应用程序中,我想处理嵌套在嵌入字段中的评论。但是我无法访问 _embedded 属性。我的 Angular 服务如下所示:

getEmbedded(): Observable<any> {
return this.http.get(ServerConfig.serverAddress + '/api/reviews');
}

使用服务的组件:

export class ReviewListComponent implements OnInit {
embeddedReviewResource: any;

constructor(private reviewService: ReviewService) { }

ngOnInit() {

this.reviewService.getEmbedded().subscribe(data => {
  this.embeddedReviewResource = data;
});
}

在我看来,我尝试以多种方式引用 _embedded 属性:

*ngFor="let review of embeddedReviewResource.reviews

*ngFor="let review of embeddedReviewResource._embedded.reviews

*ngFor="let review of embeddedReviewResource.getEmbedded().reviews

*ngFor="let review of embeddedReviewResource._embeddedViews.reviews

这些似乎都不起作用。如何访问 Json 文件中的 _embedded 属性? 完整的源代码可在my GitHub 获得。

【问题讨论】:

    标签: json angular typescript spring-data-jpa


    【解决方案1】:
       reviews = []; 
    
       this.reviewService.getEmbedded().subscribe(data => {
          this.reviews = data._embedded.reviews;
        });
    

    模板

       <div *ngFor="let review of reviews"> 
         {{ review.content }}
       </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-05
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      相关资源
      最近更新 更多